oizma / angleproject

Automatically exported from code.google.com/p/angleproject
Other
0 stars 0 forks source link

Report more accurate shader limits on Shader Model 3.0 #74

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
http://code.google.com/p/chromium/issues/detail?id=63491 illustrates a 
situation where ANGLE reports smaller numbers for certain limits (in particular 
MAX_VARYING_VECTORS) than native OpenGL. 
http://code.google.com/p/chromium/issues/detail?id=63269 indicates that Shader 
Model 3.0 supports more varying values passed between the vertex and fragment 
shaders.

ANGLE should report more accurate limits when running on more capable hardware. 
While user programs do need to query these limits in order to be correct, we 
should not limit ourselves to a least common denominator in these areas, to 
allow more sophisticated apps to be written.

Original issue reported on code.google.com by kbr@chromium.org on 17 Nov 2010 at 7:17

GoogleCodeExporter commented 9 years ago
We've had some about these discussions before.  ANGLE can do somewhat better on 
some of the limits, but in many cases it will be limited by the D3D9 api, 
whereas OpenGL is exposing more of the hardware capabilities.

For example MAX_VARYING_VECTORS will only be able to go as high as 10 in D3D9.

Original comment by dan...@transgaming.com on 17 Nov 2010 at 7:28

GoogleCodeExporter commented 9 years ago
That's OK. If we can do only slightly better that is still better than nothing.

Original comment by kbr@chromium.org on 17 Nov 2010 at 7:30

GoogleCodeExporter commented 9 years ago

Original comment by nicolas....@gmail.com on 25 Nov 2010 at 11:40

GoogleCodeExporter commented 9 years ago
r492 increases the number of varyings to 10 on Shader Model 3 devices.
r494 increases the number of vertex attributes to 15.
r495 reduces the number of uniforms consumed to support gl_DepthRange.
r496 increases the number of vertex uniform vectors.
r497 increases the number of fragment uniform vectors.

These changes maximize the reported shader resources to what the device truely 
supports, minus what need to be reserved for the implementation. The number of 
vertex attributes can likely be increased further to 16, which will be handled 
by the buffer implementation rewrite.

Original comment by nicolas....@gmail.com on 28 Nov 2010 at 12:55

GoogleCodeExporter commented 9 years ago
Thank you. This is very much appreciated. Every single parameter slot counts.

Original comment by postfil...@gmail.com on 28 Nov 2010 at 6:34