mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
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>
This commit is contained in:
parent
a08ad59ea6
commit
45c2ebc341
1 changed files with 6 additions and 0 deletions
|
|
@ -203,6 +203,12 @@ lower_fragcoord_instr(nir_builder *b, nir_instr *instr, UNUSED void *_data)
|
||||||
VARYING_SLOT_POS);
|
VARYING_SLOT_POS);
|
||||||
val = nir_load_var(b, var);
|
val = nir_load_var(b, var);
|
||||||
break;
|
break;
|
||||||
|
case nir_intrinsic_load_point_coord:
|
||||||
|
var = find_or_create_input(b, glsl_vector_type(GLSL_TYPE_FLOAT, 2),
|
||||||
|
"gl_PointCoord",
|
||||||
|
VARYING_SLOT_PNTC);
|
||||||
|
val = nir_load_var(b, var);
|
||||||
|
break;
|
||||||
case nir_intrinsic_load_sample_pos:
|
case nir_intrinsic_load_sample_pos:
|
||||||
var = find_or_create_input(b, glsl_vec4_type(),
|
var = find_or_create_input(b, glsl_vec4_type(),
|
||||||
"gl_FragCoord",
|
"gl_FragCoord",
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue