anv: reduce push constant size for descriptor sets
Now that descriptor sets are located a in a 1Gb area, we can avoid storing the whole address to the descriptor and add the base address of the area to a 32bit offset. Replay a bunch of fossils with this and changes not really significant one way or another : Totals: Instrs: 9278246 -> 9277148 (-0.01%); split: -0.01%, +0.00% Cycles: 3547598421 -> 3547579435 (-0.00%); split: -0.00%, +0.00% Totals from 353 (1.14% of 31021) affected shaders: Instrs: 581546 -> 580448 (-0.19%); split: -0.23%, +0.04% Cycles: 25885422 -> 25866436 (-0.07%); split: -0.31%, +0.24% No difference on send messages or spills/fills. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21645>
This commit is contained in:

committed by
Marge Bot

parent
d2c0147228
commit
3f1ff326e0
@@ -122,7 +122,14 @@ anv_shader_bin_create(struct anv_device *device,
|
||||
prog_data_in->const_data_offset;
|
||||
|
||||
int rv_count = 0;
|
||||
struct brw_shader_reloc_value reloc_values[5];
|
||||
struct brw_shader_reloc_value reloc_values[6];
|
||||
assert((device->physical->va.instruction_state_pool.addr & 0xffffffff) == 0);
|
||||
reloc_values[rv_count++] = (struct brw_shader_reloc_value) {
|
||||
.id = BRW_SHADER_RELOC_DESCRIPTORS_ADDR_HIGH,
|
||||
.value = device->physical->indirect_descriptors ?
|
||||
(device->physical->va.descriptor_pool.addr >> 32) :
|
||||
(device->physical->va.binding_table_pool.addr >> 32),
|
||||
};
|
||||
reloc_values[rv_count++] = (struct brw_shader_reloc_value) {
|
||||
.id = BRW_SHADER_RELOC_CONST_DATA_ADDR_LOW,
|
||||
.value = shader_data_addr,
|
||||
|
Reference in New Issue
Block a user