radv: overhaul fragment shader sample positions.
authorDave Airlie <airlied@redhat.com>
Mon, 3 Apr 2017 03:38:12 +0000 (04:38 +0100)
committerDave Airlie <airlied@redhat.com>
Mon, 3 Apr 2017 19:55:15 +0000 (05:55 +1000)
commit1171b304f30f77b6780891b2b0561b52234a1ec5
tree3a3a50fd4390e6ceb8fc4005a5c29ea058a1020e
parent471c1bc7ccd33caa38bbf7124691ccf6884ac5f8
radv: overhaul fragment shader sample positions.

The current code was broken, and I decided to redesign it instead.

This puts the sample positions for all samples into the queue
constant descriptor buffer after all the spill/ring descriptors.

It then uses a single offset register to point how far into the
samples the samples for num_samples are. This saves one user sgpr
and means we only generate the sample position data in the rare
single case where we need it currently.

This doesn't fix the failing CTS tests without the followup
fix.

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/common/ac_nir_to_llvm.c
src/amd/common/ac_nir_to_llvm.h
src/amd/vulkan/radv_cmd_buffer.c
src/amd/vulkan/radv_device.c
src/amd/vulkan/radv_private.h