Imagination PowerVR SDK Blog

Avoid hsr for polygon on SGX 535


#1

Hi…

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…
Thanks


#2

Hi wrabbit,

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.

Thanks,
Joe




#3

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:58

#4


Normal
0




false
false
false

EN-GB
X-NONE
X-NONE











MicrosoftInternetExplorer4















Hi wrabbit,



You should refer to our "SGX Architecture Guide for Developers"
document
here for
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.


Thanks,

Joe

















































































































































/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}