mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 08:58:02 +02:00
amd: document OOB behavior on gfx11
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21041>
This commit is contained in:
parent
76472c850b
commit
1d8d223f08
2 changed files with 32 additions and 6 deletions
|
|
@ -742,12 +742,25 @@ radv_make_texel_buffer_descriptor(struct radv_device *device, uint64_t va, VkFor
|
|||
if (device->physical_device->rad_info.gfx_level >= GFX10) {
|
||||
const struct gfx10_format *fmt = &ac_get_gfx10_format_table(&device->physical_device->rad_info)[vk_format_to_pipe_format(vk_format)];
|
||||
|
||||
/* OOB_SELECT chooses the out-of-bounds check:
|
||||
/* OOB_SELECT chooses the out-of-bounds check.
|
||||
*
|
||||
* GFX10:
|
||||
* - 0: (index >= NUM_RECORDS) || (offset >= STRIDE)
|
||||
* - 1: index >= NUM_RECORDS
|
||||
* - 2: NUM_RECORDS == 0
|
||||
* - 3: if SWIZZLE_ENABLE == 0: offset >= NUM_RECORDS
|
||||
* else: swizzle_address >= NUM_RECORDS
|
||||
* - 3: if SWIZZLE_ENABLE:
|
||||
* swizzle_address >= NUM_RECORDS
|
||||
* else:
|
||||
* offset >= NUM_RECORDS
|
||||
*
|
||||
* GFX11:
|
||||
* - 0: (index >= NUM_RECORDS) || (offset+payload > STRIDE)
|
||||
* - 1: index >= NUM_RECORDS
|
||||
* - 2: NUM_RECORDS == 0
|
||||
* - 3: if SWIZZLE_ENABLE && STRIDE:
|
||||
* (index >= NUM_RECORDS) || ( offset+payload > STRIDE)
|
||||
* else:
|
||||
* offset+payload > NUM_RECORDS
|
||||
*/
|
||||
rsrc_word3 |= S_008F0C_FORMAT(fmt->img_format) |
|
||||
S_008F0C_OOB_SELECT(V_008F0C_OOB_SELECT_STRUCTURED_WITH_OFFSET) |
|
||||
|
|
|
|||
|
|
@ -3977,12 +3977,25 @@ void si_make_buffer_descriptor(struct si_screen *screen, struct si_resource *buf
|
|||
if (screen->info.gfx_level >= GFX10) {
|
||||
const struct gfx10_format *fmt = &ac_get_gfx10_format_table(&screen->info)[format];
|
||||
|
||||
/* OOB_SELECT chooses the out-of-bounds check:
|
||||
/* OOB_SELECT chooses the out-of-bounds check.
|
||||
*
|
||||
* GFX10:
|
||||
* - 0: (index >= NUM_RECORDS) || (offset >= STRIDE)
|
||||
* - 1: index >= NUM_RECORDS
|
||||
* - 2: NUM_RECORDS == 0
|
||||
* - 3: if SWIZZLE_ENABLE == 0: offset >= NUM_RECORDS
|
||||
* else: swizzle_address >= NUM_RECORDS
|
||||
* - 3: if SWIZZLE_ENABLE:
|
||||
* swizzle_address >= NUM_RECORDS
|
||||
* else:
|
||||
* offset >= NUM_RECORDS
|
||||
*
|
||||
* GFX11:
|
||||
* - 0: (index >= NUM_RECORDS) || (offset+payload > STRIDE)
|
||||
* - 1: index >= NUM_RECORDS
|
||||
* - 2: NUM_RECORDS == 0
|
||||
* - 3: if SWIZZLE_ENABLE && STRIDE:
|
||||
* (index >= NUM_RECORDS) || ( offset+payload > STRIDE)
|
||||
* else:
|
||||
* offset+payload > NUM_RECORDS
|
||||
*/
|
||||
state[7] |= S_008F0C_FORMAT(fmt->img_format) |
|
||||
S_008F0C_OOB_SELECT(V_008F0C_OOB_SELECT_STRUCTURED_WITH_OFFSET) |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue