mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 15:50:17 +01:00
tgsi/scan: add more information about bindless usage
radeonsi will use this.
This commit is contained in:
parent
fba91b5173
commit
2a936f8afa
2 changed files with 33 additions and 2 deletions
|
|
@ -368,7 +368,19 @@ scan_instruction(struct tgsi_shader_info *info,
|
|||
info->uses_bindless_samplers = true;
|
||||
break;
|
||||
case TGSI_OPCODE_RESQ:
|
||||
if (tgsi_is_bindless_image_file(fullinst->Src[0].Register.File))
|
||||
info->uses_bindless_images = true;
|
||||
break;
|
||||
case TGSI_OPCODE_LOAD:
|
||||
if (tgsi_is_bindless_image_file(fullinst->Src[0].Register.File)) {
|
||||
info->uses_bindless_images = true;
|
||||
|
||||
if (fullinst->Memory.Texture == TGSI_TEXTURE_BUFFER)
|
||||
info->uses_bindless_buffer_load = true;
|
||||
else
|
||||
info->uses_bindless_image_load = true;
|
||||
}
|
||||
break;
|
||||
case TGSI_OPCODE_ATOMUADD:
|
||||
case TGSI_OPCODE_ATOMXCHG:
|
||||
case TGSI_OPCODE_ATOMCAS:
|
||||
|
|
@ -379,12 +391,24 @@ scan_instruction(struct tgsi_shader_info *info,
|
|||
case TGSI_OPCODE_ATOMUMAX:
|
||||
case TGSI_OPCODE_ATOMIMIN:
|
||||
case TGSI_OPCODE_ATOMIMAX:
|
||||
if (tgsi_is_bindless_image_file(fullinst->Src[0].Register.File))
|
||||
if (tgsi_is_bindless_image_file(fullinst->Src[0].Register.File)) {
|
||||
info->uses_bindless_images = true;
|
||||
|
||||
if (fullinst->Memory.Texture == TGSI_TEXTURE_BUFFER)
|
||||
info->uses_bindless_buffer_atomic = true;
|
||||
else
|
||||
info->uses_bindless_image_atomic = true;
|
||||
}
|
||||
break;
|
||||
case TGSI_OPCODE_STORE:
|
||||
if (tgsi_is_bindless_image_file(fullinst->Dst[0].Register.File))
|
||||
if (tgsi_is_bindless_image_file(fullinst->Dst[0].Register.File)) {
|
||||
info->uses_bindless_images = true;
|
||||
|
||||
if (fullinst->Memory.Texture == TGSI_TEXTURE_BUFFER)
|
||||
info->uses_bindless_buffer_store = true;
|
||||
else
|
||||
info->uses_bindless_image_store = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -153,6 +153,13 @@ struct tgsi_shader_info
|
|||
unsigned shader_buffers_load; /**< bitmask of shader buffers using loads */
|
||||
unsigned shader_buffers_store; /**< bitmask of shader buffers using stores */
|
||||
unsigned shader_buffers_atomic; /**< bitmask of shader buffers using atomics */
|
||||
bool uses_bindless_buffer_load;
|
||||
bool uses_bindless_buffer_store;
|
||||
bool uses_bindless_buffer_atomic;
|
||||
bool uses_bindless_image_load;
|
||||
bool uses_bindless_image_store;
|
||||
bool uses_bindless_image_atomic;
|
||||
|
||||
/**
|
||||
* Bitmask indicating which register files are accessed with
|
||||
* indirect addressing. The bits are (1 << TGSI_FILE_x), etc.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue