freedreno/a6xx: ARB_sample_locations
authorRob Clark <robdclark@chromium.org>
Thu, 31 Aug 2023 01:22:31 +0000 (18:22 -0700)
committerMarge Bot <emma+marge@anholt.net>
Mon, 11 Sep 2023 19:45:19 +0000 (19:45 +0000)
commit286b7723f04626a1337c0d33bdbf8e7cb5c9e8ee
tree682c29a1b96c5d5853dff670445ad73f7d6fd237
parentfd00e994449d21f906ad291c0161b8b781c05443
freedreno/a6xx: ARB_sample_locations

Note, gl_SamplePosition (rgetpos), and therefore interpolateAtSample(),
doesn't work with sample location_enable=true.  For vulkan, "If the
current pipeline uses custom sample locations the value of any variable
decorated with the SamplePosition built-in decoration is undefined."
But ARB_sample_positions doesn't mention this.  Possibly the vk text
should be backported to the gl extension.  (If the app is specifying the
sample locations, it shouldn't need gl_SamplePosition.)

The upshot of this is 2 out of 3 tests that piglit arb_sample_locations
test tests fail, even though sample locations itself is working.
Possibly the test should be updated.  Or we could use driconf to hide
ARB_gpu_shader5 and ARB_sample_shading from this test.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24999>
docs/features.txt
src/gallium/drivers/freedreno/a6xx/fd6_context.cc
src/gallium/drivers/freedreno/a6xx/fd6_context.h
src/gallium/drivers/freedreno/a6xx/fd6_emit.cc
src/gallium/drivers/freedreno/a6xx/fd6_emit.h
src/gallium/drivers/freedreno/freedreno_context.h
src/gallium/drivers/freedreno/freedreno_screen.c
src/gallium/drivers/freedreno/freedreno_state.c