This will let us initialize the constant buffers with loops.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
</struct>
<struct name="3DSTATE_CONSTANT_BODY" length="6">
- <field name="Constant Buffer 1 Read Length" start="16" end="31" type="uint"/>
- <field name="Constant Buffer 0 Read Length" start="0" end="15" type="uint"/>
- <field name="Constant Buffer 3 Read Length" start="48" end="63" type="uint"/>
- <field name="Constant Buffer 2 Read Length" start="32" end="47" type="uint"/>
- <field name="Pointer To Constant Buffer 0" start="69" end="95" type="address"/>
+ <group count="4" start="0" size="16">
+ <field name="Read Length" start="0" end="15" type="uint"/>
+ </group>
<field name="Constant Buffer Object Control State" start="64" end="68" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Pointer To Constant Buffer 1" start="101" end="127" type="address"/>
- <field name="Pointer To Constant Buffer 2" start="133" end="159" type="address"/>
- <field name="Pointer To Constant Buffer 3" start="165" end="191" type="address"/>
+ <group count="4" start="64" size="32">
+ <field name="Buffer" start="5" end="31" type="address"/>
+ </group>
</struct>
<struct name="VERTEX_BUFFER_STATE" length="4">
</struct>
<struct name="3DSTATE_CONSTANT_BODY" length="6">
- <field name="Constant Buffer 1 Read Length" start="16" end="31" type="uint"/>
- <field name="Constant Buffer 0 Read Length" start="0" end="15" type="uint"/>
- <field name="Constant Buffer 3 Read Length" start="48" end="63" type="uint"/>
- <field name="Constant Buffer 2 Read Length" start="32" end="47" type="uint"/>
- <field name="Pointer To Constant Buffer 0" start="69" end="95" type="address"/>
+ <group count="4" start="0" size="16">
+ <field name="Read Length" start="0" end="15" type="uint"/>
+ </group>
<field name="Constant Buffer Object Control State" start="64" end="68" type="MEMORY_OBJECT_CONTROL_STATE"/>
- <field name="Pointer To Constant Buffer 1" start="101" end="127" type="address"/>
- <field name="Pointer To Constant Buffer 2" start="133" end="159" type="address"/>
- <field name="Pointer To Constant Buffer 3" start="165" end="191" type="address"/>
+ <group count="4" start="64" size="32">
+ <field name="Buffer" start="5" end="31" type="address"/>
+ </group>
</struct>
<struct name="BINDING_TABLE_EDIT_ENTRY" length="1">
</enum>
<struct name="3DSTATE_CONSTANT_BODY" length="10">
- <field name="Constant Buffer 1 Read Length" start="16" end="31" type="uint"/>
- <field name="Constant Buffer 0 Read Length" start="0" end="15" type="uint"/>
- <field name="Constant Buffer 3 Read Length" start="48" end="63" type="uint"/>
- <field name="Constant Buffer 2 Read Length" start="32" end="47" type="uint"/>
- <field name="Pointer To Constant Buffer 0" start="69" end="127" type="address"/>
- <field name="Pointer To Constant Buffer 1" start="133" end="191" type="address"/>
- <field name="Pointer To Constant Buffer 2" start="197" end="255" type="address"/>
- <field name="Pointer To Constant Buffer 3" start="261" end="319" type="address"/>
+ <group count="4" start="0" size="16">
+ <field name="Read Length" start="0" end="15" type="uint"/>
+ </group>
+ <group count="4" start="64" size="64">
+ <field name="Buffer" start="5" end="63" type="address"/>
+ </group>
</struct>
<struct name="BINDING_TABLE_EDIT_ENTRY" length="1">
</enum>
<struct name="3DSTATE_CONSTANT_BODY" length="10">
- <field name="Constant Buffer 1 Read Length" start="16" end="31" type="uint"/>
- <field name="Constant Buffer 0 Read Length" start="0" end="15" type="uint"/>
- <field name="Constant Buffer 3 Read Length" start="48" end="63" type="uint"/>
- <field name="Constant Buffer 2 Read Length" start="32" end="47" type="uint"/>
- <field name="Pointer To Constant Buffer 0" start="69" end="127" type="address"/>
- <field name="Pointer To Constant Buffer 1" start="133" end="191" type="address"/>
- <field name="Pointer To Constant Buffer 2" start="197" end="255" type="address"/>
- <field name="Pointer To Constant Buffer 3" start="261" end="319" type="address"/>
+ <group count="4" start="0" size="16">
+ <field name="Read Length" start="0" end="15" type="uint"/>
+ </group>
+ <group count="4" start="64" size="64">
+ <field name="Buffer" start="5" end="63" type="address"/>
+ </group>
</struct>
<struct name="BINDING_TABLE_EDIT_ENTRY" length="1">
c._3DCommandSubOpcode = push_constant_opcodes[stage],
c.ConstantBody = (struct GENX(3DSTATE_CONSTANT_BODY)) {
#if GEN_GEN >= 9
- .PointerToConstantBuffer2 = { &cmd_buffer->device->dynamic_state_pool.block_pool.bo, state.offset },
- .ConstantBuffer2ReadLength = DIV_ROUND_UP(state.alloc_size, 32),
+ .Buffer[2] = { &cmd_buffer->device->dynamic_state_pool.block_pool.bo, state.offset },
+ .ReadLength[2] = DIV_ROUND_UP(state.alloc_size, 32),
#else
- .PointerToConstantBuffer0 = { .offset = state.offset },
- .ConstantBuffer0ReadLength = DIV_ROUND_UP(state.alloc_size, 32),
+ .Buffer[0] = { .offset = state.offset },
+ .ReadLength[0] = DIV_ROUND_UP(state.alloc_size, 32),
#endif
};
}
pkt._3DCommandSubOpcode = push_constant_opcodes[stage];
if (active) {
#if GEN_GEN >= 8 || GEN_IS_HASWELL
- pkt.ConstantBody.ConstantBuffer2ReadLength =
- stage_state->push_const_size;
- pkt.ConstantBody.PointerToConstantBuffer2 =
+ pkt.ConstantBody.ReadLength[2] = stage_state->push_const_size;
+ pkt.ConstantBody.Buffer[2] =
render_ro_bo(brw->curbe.curbe_bo, stage_state->push_const_offset);
#else
- pkt.ConstantBody.ConstantBuffer0ReadLength =
- stage_state->push_const_size;
- pkt.ConstantBody.PointerToConstantBuffer0.offset =
+ pkt.ConstantBody.ReadLength[0] = stage_state->push_const_size;
+ pkt.ConstantBody.Buffer[0].offset =
stage_state->push_const_offset | mocs;
#endif
}