nir: Add a new sample_pos_or_center system value
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14198>
This commit is contained in:
parent
732b234ddb
commit
e8acc5a7ea
|
@ -2369,6 +2369,8 @@ nir_intrinsic_from_system_value(gl_system_value val)
|
|||
return nir_intrinsic_load_sample_id;
|
||||
case SYSTEM_VALUE_SAMPLE_POS:
|
||||
return nir_intrinsic_load_sample_pos;
|
||||
case SYSTEM_VALUE_SAMPLE_POS_OR_CENTER:
|
||||
return nir_intrinsic_load_sample_pos_or_center;
|
||||
case SYSTEM_VALUE_SAMPLE_MASK_IN:
|
||||
return nir_intrinsic_load_sample_mask_in;
|
||||
case SYSTEM_VALUE_LOCAL_INVOCATION_ID:
|
||||
|
@ -2500,6 +2502,8 @@ nir_system_value_from_intrinsic(nir_intrinsic_op intrin)
|
|||
return SYSTEM_VALUE_SAMPLE_ID;
|
||||
case nir_intrinsic_load_sample_pos:
|
||||
return SYSTEM_VALUE_SAMPLE_POS;
|
||||
case nir_intrinsic_load_sample_pos_or_center:
|
||||
return SYSTEM_VALUE_SAMPLE_POS_OR_CENTER;
|
||||
case nir_intrinsic_load_sample_mask_in:
|
||||
return SYSTEM_VALUE_SAMPLE_MASK_IN;
|
||||
case nir_intrinsic_load_local_invocation_id:
|
||||
|
|
|
@ -390,6 +390,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
|
|||
case nir_intrinsic_load_line_coord:
|
||||
case nir_intrinsic_load_frag_coord:
|
||||
case nir_intrinsic_load_sample_pos:
|
||||
case nir_intrinsic_load_sample_pos_or_center:
|
||||
case nir_intrinsic_load_vertex_id_zero_base:
|
||||
case nir_intrinsic_load_vertex_id:
|
||||
case nir_intrinsic_load_instance_id:
|
||||
|
|
|
@ -629,6 +629,7 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader,
|
|||
case nir_intrinsic_load_front_face:
|
||||
case nir_intrinsic_load_sample_id:
|
||||
case nir_intrinsic_load_sample_pos:
|
||||
case nir_intrinsic_load_sample_pos_or_center:
|
||||
case nir_intrinsic_load_sample_mask_in:
|
||||
case nir_intrinsic_load_helper_invocation:
|
||||
case nir_intrinsic_load_tess_coord:
|
||||
|
|
|
@ -738,6 +738,9 @@ system_value("sample_id", 1)
|
|||
# sample shading. See the lower_helper_invocation option.
|
||||
system_value("sample_id_no_per_sample", 1)
|
||||
system_value("sample_pos", 2)
|
||||
# sample_pos_or_center is like sample_pos but does not imply per-sample
|
||||
# shading. When per-sample dispatch is not enabled, it returns (0.5, 0.5).
|
||||
system_value("sample_pos_or_center", 2)
|
||||
system_value("sample_mask_in", 1)
|
||||
system_value("primitive_id", 1)
|
||||
system_value("invocation_id", 1)
|
||||
|
|
|
@ -128,6 +128,7 @@ block_check_for_allowed_instrs(nir_block *block, unsigned *count,
|
|||
case nir_intrinsic_load_layer_id:
|
||||
case nir_intrinsic_load_frag_coord:
|
||||
case nir_intrinsic_load_sample_pos:
|
||||
case nir_intrinsic_load_sample_pos_or_center:
|
||||
case nir_intrinsic_load_sample_id:
|
||||
case nir_intrinsic_load_sample_mask_in:
|
||||
case nir_intrinsic_load_vertex_id_zero_base:
|
||||
|
|
|
@ -715,6 +715,7 @@ typedef enum
|
|||
SYSTEM_VALUE_FRONT_FACE,
|
||||
SYSTEM_VALUE_SAMPLE_ID,
|
||||
SYSTEM_VALUE_SAMPLE_POS,
|
||||
SYSTEM_VALUE_SAMPLE_POS_OR_CENTER,
|
||||
SYSTEM_VALUE_SAMPLE_MASK_IN,
|
||||
SYSTEM_VALUE_HELPER_INVOCATION,
|
||||
SYSTEM_VALUE_COLOR0,
|
||||
|
|
Loading…
Reference in New Issue