mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 17:30:12 +01:00
tu: Split loading immediates for a program from the program config.
This moves the immediates load down a bit, so we can continue the CRB conversion of program config. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38762>
This commit is contained in:
parent
5f091af897
commit
780de476e7
3 changed files with 23 additions and 0 deletions
|
|
@ -883,6 +883,9 @@ r3d_common(struct tu_cmd_buffer *cmd, struct tu_cs *cs, enum r3d_type type,
|
|||
tu6_emit_xs(cs, MESA_SHADER_VERTEX, vs, &pvtmem, vs_iova);
|
||||
tu6_emit_xs(cs, MESA_SHADER_FRAGMENT, fs, &pvtmem, fs_iova);
|
||||
|
||||
tu6_emit_xs_constants(cs, MESA_SHADER_VERTEX, vs, vs_iova);
|
||||
tu6_emit_xs_constants(cs, MESA_SHADER_FRAGMENT, fs, fs_iova);
|
||||
|
||||
tu_cs_emit_regs(cs, PC_CNTL(CHIP));
|
||||
if (CHIP == A7XX) {
|
||||
tu_cs_emit_regs(cs, VPC_PC_CNTL(CHIP));
|
||||
|
|
|
|||
|
|
@ -1662,6 +1662,17 @@ tu6_emit_xs(struct tu_cs *cs,
|
|||
tu_cs_emit_pkt4(cs, cfg->reg_sp_xs_vgpr_config, 1);
|
||||
tu_cs_emit(cs, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
tu6_emit_xs_constants(
|
||||
struct tu_cs *cs,
|
||||
mesa_shader_stage stage, /* xs->type, but xs may be NULL */
|
||||
const struct ir3_shader_variant *xs,
|
||||
uint64_t binary_iova)
|
||||
{
|
||||
if (!xs)
|
||||
return;
|
||||
|
||||
if (cs->device->physical_device->info->chip == A6XX) {
|
||||
uint32_t shader_preload_size =
|
||||
|
|
@ -1778,6 +1789,7 @@ tu6_emit_cs_config(struct tu_cs *cs,
|
|||
tu6_emit_xs_config<CHIP>(crb, MESA_SHADER_COMPUTE, v);
|
||||
}
|
||||
tu6_emit_xs(cs, MESA_SHADER_COMPUTE, v, pvtmem, binary_iova);
|
||||
tu6_emit_xs_constants(cs, MESA_SHADER_COMPUTE, v, binary_iova);
|
||||
|
||||
tu_crb crb = cs->crb(0);
|
||||
|
||||
|
|
@ -2409,6 +2421,8 @@ tu6_emit_variant(struct tu_cs *cs,
|
|||
default:
|
||||
UNREACHABLE("unknown shader stage");
|
||||
}
|
||||
|
||||
tu6_emit_xs_constants(cs, stage, xs, binary_iova);
|
||||
}
|
||||
|
||||
static VkResult
|
||||
|
|
|
|||
|
|
@ -158,6 +158,12 @@ tu6_emit_xs(struct tu_cs *cs,
|
|||
const struct tu_pvtmem_config *pvtmem,
|
||||
uint64_t binary_iova);
|
||||
|
||||
void
|
||||
tu6_emit_xs_constants(struct tu_cs *cs,
|
||||
mesa_shader_stage stage,
|
||||
const struct ir3_shader_variant *xs,
|
||||
uint64_t binary_iova);
|
||||
|
||||
template <chip CHIP>
|
||||
void
|
||||
tu6_emit_vs(struct tu_cs *cs, const struct ir3_shader_variant *vs,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue