nvk: Convert system values for gl_PointCoord and PointCoord into inputs
authorRebecca Mckeever <rebecca.mckeever@collabora.com>
Tue, 22 Nov 2022 00:45:01 +0000 (18:45 -0600)
committerMarge Bot <emma+marge@anholt.net>
Fri, 4 Aug 2023 21:32:02 +0000 (21:32 +0000)
commit45c2ebc341db2dafbdc6994f483068e7b080caeb
treedece42f3656d2eb659abcacee070222c170c645a
parenta08ad59ea68d9a0181e0194d455ff7a825b80503
nvk: Convert system values for gl_PointCoord and PointCoord into inputs

Currently, any attempt to use gl_PointCoord (GLSL) or PointCoord (SPIR-V)
results in an assert in codegen:

ERROR: unknown nir_intrinsic_op load_point_coord

This patch addresses the error by converting nir_intrinsic_load_point_coord
system value into VARYING_SLOT_PNTC. The following tests now pass:

dEQP-VK.glsl.builtin_var.simple.pointcoord
dEQP-VK.glsl.builtin_var.simple.pointcoord_uniform_frag
dEQP-VK.glsl.builtin_var.simple.pointcoord_uniform_vert

Closes: https://gitlab.freedesktop.org/nouveau/mesa/-/issues/33
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
src/nouveau/vulkan/nvk_shader.c