- October 9, 2012 at 6:50 am #30988
Does anyone know if it is possible to selectively avoid HSR on a polygon? I would like to see if transparency effects implemented in a glsl fragment shader are possible but from the architecture guide I gather geometry is always subject to HSR unless blending or alpha testing is enabled or there are discards in the fragment shader. In practice I suspect the default alpha blending might be fine.. at this point I’m just curious.
Any help would be appreciated..
ThanksOctober 9, 2012 at 5:23 pm #36183
There is no way to disable the HSR for opaque geometry. Can you explain why you would want to disable the HSR? It’s an extremely fast operation and is very unlikely to cause a bottleneck in an application.
JoeOctober 10, 2012 at 1:59 am #36184
ok.. if there is no performance/power gain to be had in disabling HSR then that’s fine.Approaches like Intel’s Adaptive Transparency replace the typical alpha-blending and my impression from the PowerVR docs, perhaps mistaken, is that unless GL_BLEND is enabled or the fragment shader has a discard in it (alpha testing not available in GL ES 2.0) then HSR will interfere with the results.I don’t think i want to discard since that affects the overall performance/power consumption. This technique does not need traditional alpha blending either.The Adaptive Transparency paper comes with extensive HLSL examples, but I haven’t come across an implementation for OpenGL yet. Do you know if this technique would make sense on the PowerVR SGX 5 architecture? The advantage is that it’s OIT.. I understand that the fragment shaders see the geometry in the order it’s submitted rather than taking advantage of the depth-sorting done by HSR so I suspect this technique still has value.
wrabbit2012-10-10 02:08:58October 15, 2012 at 3:20 pm #36185
You should refer to our “SGX Architecture Guide for Developers”
more information on how HSR works. From an application’s point of view, there is no difference between an image rendered with HSR enabled or rendered with it disabled. HSR is a hardware level optimization to reduce overdraw.
From my understanding, the Adaptive Transparency technique relies on the DX11
per-pixel linked list functionality. The current OpenGL ES APIs do not have any
mechanisms for building per-pixel linked lists to specify rendering order.
Because of this, the technique will be difficult to implement in the current
OpenGL ES APIs without incurring a significant performance overhead.
/* Style Definitions */
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
font-family:”Times New Roman”,”serif”;}