Bug 101983

Summary: [G33] ES2-CTS.functional.shaders.struct.uniform.sampler_nested* regression
Product: Mesa Reporter: Mark Janes <mark.a.janes>
Component: Drivers/DRI/i965Assignee: Timothy Arceri <t_arceri>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: samuel.pitoiset
Version: 17.2   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 101911    

Description Mark Janes 2017-07-31 15:40:30 UTC
Bisected to:
fcbb93e860246375d03f280f927f79d3645a8988
Author:     Timothy Arceri <tarceri@itsqueeze.com>
mesa: stop assigning unused storage for non-bindless opaque types

The storage was once used by get_sampler_uniform_value() but that
was fixed long ago to use the uniform storage assigned by the
linker.

By not assigning storage for images/samplers the constant buffer
for gallium drivers will be reduced which could result in small
perf improvements.

V2: rebase on ARB_bindless_texture
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>

Test output:
ES2-CTS.functional.shaders.struct.uniform.sampler_nested_vertex
Image comparison failed: difference = 12576.9, threshold = 0.05
Comment 1 Samuel Pitoiset 2017-07-31 19:54:45 UTC
Thanks for reporting this Mark, I can confirm the issue on my side.
Comment 2 Timothy Arceri 2017-08-01 07:37:47 UTC
Mesa fixes:

https://patchwork.freedesktop.org/series/28176/

An additional piglit test that captures an additional bug not covered by the CTS:

https://patchwork.freedesktop.org/patch/169743/
Comment 3 Timothy Arceri 2017-08-14 22:31:55 UTC
Should be fixed by:

commit	365d34540f331df57780dddf8da87235be0a6bcb
mesa: correctly calculate the storage offset for i915
When generating the storage offset for struct members we need
to skip opaque types as they no longer have backing storage.

Fixes: fcbb93e86024 ("mesa: stop assigning unused storage for non-bindless opaque types")

V2: simplify since bindless will never be supported in this code

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101983
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>

and

commit	de0e62e1065e2d9172acf3ab7c70bba0160125c8
st/mesa: correctly calculate the storage offset
When generating the storage offset for struct members we need
to skip opaque types as they no longer have backing storage.

Fixes: fcbb93e86024 ("mesa: stop assigning unused storage for non-bindless opaque types")

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101983
Reviewed-by: Dave Airlie <airlied@redhat.com>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.