mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
intel/batch_decoder: decoding of 3DSTATE_CONSTANT_BODY.
SNB doesn't have a definition of 3DSTATE_CONSTANT_BODY, thats
why we got segmentation fault when used INTEL_DEBUG=bat.
Fixed by adding of 3DSTATE_CONSTANT_BODY into 3DSTATE_CONSTANT
of VS, GS and PS structures.
v2: added definition of 3DSTATE_CONSTANT_BODY to the gen6.xml
Fixes: 169d8e011a (intel: Fix 3DSTATE_CONSTANT buffer decoding.)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107190
Signed-off-by: Sergii Romantsov <sergii.romantsov@globallogic.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
4054133dcc
commit
cec540fbc6
2 changed files with 20 additions and 30 deletions
|
|
@ -622,6 +622,17 @@
|
|||
<field name="Maximum VP Index" start="96" end="99" type="uint"/>
|
||||
</instruction>
|
||||
|
||||
<struct name="3DSTATE_CONSTANT_BODY" length="4">
|
||||
<field name="Pointer to Constant Buffer 0" start="5" end="31" type="offset"/>
|
||||
<field name="Constant Buffer 0 Read Length" start="0" end="4" type="uint"/>
|
||||
<field name="Pointer to Constant Buffer 1" start="37" end="63" type="address"/>
|
||||
<field name="Constant Buffer 1 Read Length" start="32" end="36" type="uint"/>
|
||||
<field name="Pointer to Constant Buffer 2" start="69" end="95" type="address"/>
|
||||
<field name="Constant Buffer 2 Read Length" start="64" end="68" type="uint"/>
|
||||
<field name="Pointer to Constant Buffer 3" start="101" end="127" type="address"/>
|
||||
<field name="Constant Buffer 3 Read Length" start="96" end="100" type="uint"/>
|
||||
</struct>
|
||||
|
||||
<instruction name="3DSTATE_CONSTANT_GS" bias="2" length="5">
|
||||
<field name="Command Type" start="29" end="31" type="uint" default="3"/>
|
||||
<field name="Command SubType" start="27" end="28" type="uint" default="3"/>
|
||||
|
|
@ -633,14 +644,7 @@
|
|||
<field name="Buffer 0 Valid" start="12" end="12" type="bool"/>
|
||||
<field name="Constant Buffer Object Control State" start="8" end="11" type="MEMORY_OBJECT_CONTROL_STATE"/>
|
||||
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
|
||||
<field name="Pointer to GS Constant Buffer 0" start="37" end="63" type="offset"/>
|
||||
<field name="GS Constant Buffer 0 Read Length" start="32" end="36" type="uint"/>
|
||||
<field name="Pointer to GS Constant Buffer 1" start="69" end="95" type="address"/>
|
||||
<field name="GS Constant Buffer 1 Read Length" start="64" end="68" type="uint"/>
|
||||
<field name="Pointer to GS Constant Buffer 2" start="101" end="127" type="address"/>
|
||||
<field name="GS Constant Buffer 2 Read Length" start="96" end="100" type="uint"/>
|
||||
<field name="Pointer to GS Constant Buffer 3" start="133" end="159" type="address"/>
|
||||
<field name="GS Constant Buffer 3 Read Length" start="128" end="132" type="uint"/>
|
||||
<field name="Constant Body" start="32" end="159" type="3DSTATE_CONSTANT_BODY"/>
|
||||
</instruction>
|
||||
|
||||
<instruction name="3DSTATE_CONSTANT_PS" bias="2" length="5">
|
||||
|
|
@ -654,14 +658,7 @@
|
|||
<field name="Buffer 0 Valid" start="12" end="12" type="bool"/>
|
||||
<field name="Constant Buffer Object Control State" start="8" end="11" type="MEMORY_OBJECT_CONTROL_STATE"/>
|
||||
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
|
||||
<field name="Pointer to PS Constant Buffer 0" start="37" end="63" type="offset"/>
|
||||
<field name="PS Constant Buffer 0 Read Length" start="32" end="36" type="uint"/>
|
||||
<field name="Pointer to PS Constant Buffer 1" start="69" end="95" type="address"/>
|
||||
<field name="PS Constant Buffer 1 Read Length" start="64" end="68" type="uint"/>
|
||||
<field name="Pointer to PS Constant Buffer 2" start="101" end="127" type="address"/>
|
||||
<field name="PS Constant Buffer 2 Read Length" start="96" end="100" type="uint"/>
|
||||
<field name="Pointer to PS Constant Buffer 3" start="133" end="159" type="address"/>
|
||||
<field name="PS Constant Buffer 3 Read Length" start="128" end="132" type="uint"/>
|
||||
<field name="Constant Body" start="32" end="159" type="3DSTATE_CONSTANT_BODY"/>
|
||||
</instruction>
|
||||
|
||||
<instruction name="3DSTATE_CONSTANT_VS" bias="2" length="5">
|
||||
|
|
@ -675,14 +672,7 @@
|
|||
<field name="Buffer 0 Valid" start="12" end="12" type="bool"/>
|
||||
<field name="Constant Buffer Object Control State" start="8" end="11" type="MEMORY_OBJECT_CONTROL_STATE"/>
|
||||
<field name="DWord Length" start="0" end="7" type="uint" default="3"/>
|
||||
<field name="Pointer to VS Constant Buffer 0" start="37" end="63" type="offset"/>
|
||||
<field name="VS Constant Buffer 0 Read Length" start="32" end="36" type="uint"/>
|
||||
<field name="Pointer to VS Constant Buffer 1" start="69" end="95" type="address"/>
|
||||
<field name="VS Constant Buffer 1 Read Length" start="64" end="68" type="uint"/>
|
||||
<field name="Pointer to VS Constant Buffer 2" start="101" end="127" type="address"/>
|
||||
<field name="VS Constant Buffer 2 Read Length" start="96" end="100" type="uint"/>
|
||||
<field name="Pointer to VS Constant Buffer 3" start="133" end="159" type="address"/>
|
||||
<field name="VS Constant Buffer 3 Read Length" start="128" end="132" type="uint"/>
|
||||
<field name="Constant Body" start="32" end="159" type="3DSTATE_CONSTANT_BODY"/>
|
||||
</instruction>
|
||||
|
||||
<instruction name="3DSTATE_DEPTH_BUFFER" bias="2" length="7">
|
||||
|
|
|
|||
|
|
@ -1879,8 +1879,8 @@ genX(upload_wm)(struct brw_context *brw)
|
|||
/* Pointer to the WM constant buffer. Covered by the set of
|
||||
* state flags from gen6_upload_wm_push_constants.
|
||||
*/
|
||||
wmcp.PointertoPSConstantBuffer0 = stage_state->push_const_offset;
|
||||
wmcp.PSConstantBuffer0ReadLength = stage_state->push_const_size - 1;
|
||||
wmcp.ConstantBody.PointertoConstantBuffer0 = stage_state->push_const_offset;
|
||||
wmcp.ConstantBody.ConstantBuffer0ReadLength = stage_state->push_const_size - 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -2215,8 +2215,8 @@ genX(upload_vs_state)(struct brw_context *brw)
|
|||
brw_batch_emit(brw, GENX(3DSTATE_CONSTANT_VS), cvs) {
|
||||
if (stage_state->push_const_size != 0) {
|
||||
cvs.Buffer0Valid = true;
|
||||
cvs.PointertoVSConstantBuffer0 = stage_state->push_const_offset;
|
||||
cvs.VSConstantBuffer0ReadLength = stage_state->push_const_size - 1;
|
||||
cvs.ConstantBody.PointertoConstantBuffer0 = stage_state->push_const_offset;
|
||||
cvs.ConstantBody.ConstantBuffer0ReadLength = stage_state->push_const_size - 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
@ -2707,8 +2707,8 @@ genX(upload_gs_state)(struct brw_context *brw)
|
|||
brw_batch_emit(brw, GENX(3DSTATE_CONSTANT_GS), cgs) {
|
||||
if (active && stage_state->push_const_size != 0) {
|
||||
cgs.Buffer0Valid = true;
|
||||
cgs.PointertoGSConstantBuffer0 = stage_state->push_const_offset;
|
||||
cgs.GSConstantBuffer0ReadLength = stage_state->push_const_size - 1;
|
||||
cgs.ConstantBody.PointertoConstantBuffer0 = stage_state->push_const_offset;
|
||||
cgs.ConstantBody.ConstantBuffer0ReadLength = stage_state->push_const_size - 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue