radv: implement nir_intrinsic_atomic_add_gs_invocation_count_amd
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24231>
This commit is contained in:
@@ -361,9 +361,9 @@ lower_abi_instr(nir_builder *b, nir_instr *instr, void *state)
|
||||
nir_imm_int(b, 0x100));
|
||||
break;
|
||||
case nir_intrinsic_atomic_add_gs_invocation_count_amd:
|
||||
/* TODO: add gs invocation query emulation. */
|
||||
nir_gds_atomic_add_amd(b, 32, intrin->src[0].ssa, nir_imm_int(b, RADV_SHADER_QUERY_GS_INVOCATION_OFFSET),
|
||||
nir_imm_int(b, 0x100));
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_streamout_config_amd:
|
||||
replacement = ac_nir_load_arg(b, &s->args->ac, s->args->ac.streamout_config);
|
||||
break;
|
||||
|
||||
@@ -144,12 +144,14 @@
|
||||
/* Shader GDS counters:
|
||||
* offset 0| 4| 8|12 - reserved for NGG streamout counters
|
||||
* offset 16 - number of primitives generated by geometry shader invocations
|
||||
* offset 20|24|28|32 - generated primitive counter for stream 0|1|2|3
|
||||
* offset 36|40|44|48 - written primitive counter for stream 0|1|2|3
|
||||
* offset 20 - number of geometry shader invocations
|
||||
* offset 24|28|32|36 - generated primitive counter for stream 0|1|2|3
|
||||
* offset 40|44|48|52 - written primitive counter for stream 0|1|2|3
|
||||
*/
|
||||
#define RADV_SHADER_QUERY_GS_PRIM_EMIT_OFFSET 16
|
||||
#define RADV_SHADER_QUERY_PRIM_GEN_OFFSET(stream) (20 + stream * 4)
|
||||
#define RADV_SHADER_QUERY_PRIM_XFB_OFFSET(stream) (36 + stream * 4)
|
||||
#define RADV_SHADER_QUERY_GS_INVOCATION_OFFSET 20
|
||||
#define RADV_SHADER_QUERY_PRIM_GEN_OFFSET(stream) (24 + stream * 4)
|
||||
#define RADV_SHADER_QUERY_PRIM_XFB_OFFSET(stream) (40 + stream * 4)
|
||||
|
||||
/* Number of samples for line smooth lowering (hw requirement). */
|
||||
#define RADV_NUM_SMOOTH_AA_SAMPLES 4
|
||||
|
||||
Reference in New Issue
Block a user