mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 13:10:10 +01:00
nir: Allow 64-bit image atomics
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7509>
This commit is contained in:
parent
79f477c3c6
commit
5a3e22018d
1 changed files with 17 additions and 9 deletions
|
|
@ -722,10 +722,14 @@ validate_intrinsic_instr(nir_intrinsic_instr *instr, validate_state *state)
|
|||
case nir_intrinsic_bindless_image_atomic_xor:
|
||||
case nir_intrinsic_bindless_image_atomic_comp_swap: {
|
||||
enum pipe_format format = image_intrin_format(instr);
|
||||
validate_assert(state, format == PIPE_FORMAT_COUNT ||
|
||||
format == PIPE_FORMAT_R32_UINT ||
|
||||
format == PIPE_FORMAT_R32_SINT);
|
||||
validate_assert(state, nir_dest_bit_size(instr->dest) == 32);
|
||||
if (format != PIPE_FORMAT_COUNT) {
|
||||
validate_assert(state, format == PIPE_FORMAT_R32_UINT ||
|
||||
format == PIPE_FORMAT_R32_SINT ||
|
||||
format == PIPE_FORMAT_R64_UINT ||
|
||||
format == PIPE_FORMAT_R64_SINT);
|
||||
validate_assert(state, nir_dest_bit_size(instr->dest) ==
|
||||
util_format_get_blocksizebits(format));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -733,11 +737,15 @@ validate_intrinsic_instr(nir_intrinsic_instr *instr, validate_state *state)
|
|||
case nir_intrinsic_image_atomic_exchange:
|
||||
case nir_intrinsic_bindless_image_atomic_exchange: {
|
||||
enum pipe_format format = image_intrin_format(instr);
|
||||
validate_assert(state, format == PIPE_FORMAT_COUNT ||
|
||||
format == PIPE_FORMAT_R32_UINT ||
|
||||
format == PIPE_FORMAT_R32_SINT ||
|
||||
format == PIPE_FORMAT_R32_FLOAT);
|
||||
validate_assert(state, nir_dest_bit_size(instr->dest) == 32);
|
||||
if (format != PIPE_FORMAT_COUNT) {
|
||||
validate_assert(state, format == PIPE_FORMAT_R32_UINT ||
|
||||
format == PIPE_FORMAT_R32_SINT ||
|
||||
format == PIPE_FORMAT_R32_FLOAT ||
|
||||
format == PIPE_FORMAT_R64_UINT ||
|
||||
format == PIPE_FORMAT_R64_SINT);
|
||||
validate_assert(state, nir_dest_bit_size(instr->dest) ==
|
||||
util_format_get_blocksizebits(format));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue