diff options
author | Kenneth Graunke <[email protected]> | 2016-11-24 01:50:10 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2017-01-06 15:55:48 -0800 |
commit | e6ae19944d977dc91bc45adff679337182c20683 (patch) | |
tree | 554723310c16a8d291e32cd3d29e72e80d16ff0c /src/amd | |
parent | 31d9de58abbe25229956355b622b9699dffd2f7f (diff) |
i965: Rework gl_TessLevel*[] handling to use NIR compact arrays.
Treating everything as scalar arrays allows us to drop a bunch of
special case input/output munging all throughout the backend.
Instead, we just need to remap the TessLevel components to the
appropriate patch URB header locations in remap_patch_urb_offsets().
We also switch to treating the TES input versions of these as ordinary
shader inputs rather than system values, as remap_patch_urb_offsets()
just makes everything work out without special handling.
This regresses one Piglit test:
arb_tessellation_shader-large-uniforms/GL_TESS_CONTROL_SHADER-array-at-limit
The compiler starts promoting the constant arrays assigned to gl_TessLevel*
to uniform arrays. Since the shader also has a uniform array that uses
the maximum number of uniform components, this puts it over the uniform
component limit enforced by the linker. This is arguably a bug in the
constant array promotion code (it should avoid pushing us over limits),
but is unlikely to penalize any real application.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/amd')
0 files changed, 0 insertions, 0 deletions