<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="Mask Stack Exception Enable" start="75" end="75" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Pointer" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per-Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Vertex URB Entry Read Length" start="139" end="144" type="uint"/>
<field name="Vertex URB Entry Read Offset" start="132" end="137" type="uint"/>
</field>
<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Offset" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per-Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Dispatch GRF Start Register for URB Data" start="148" end="152" type="uint"/>
<field name="Vertex URB Entry Read Length" start="139" end="144" type="uint"/>
<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="MaskStack Exception Enable" start="75" end="75" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Pointer" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Statistics Enable" start="159" end="159" type="bool"/>
<field name="Depth Buffer Clear" start="158" end="158" type="bool"/>
<field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="SubOpcode" start="16" end="23" type="uint" default="0"/>
<field name="DWord Length" start="0" end="15" type="uint" default="6"/>
- <field name="Scratch Space Base Pointer" start="42" end="63" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="42" end="63" type="address"/>
<field name="Per Thread Scratch Space" start="32" end="35" type="uint"/>
<field name="Maximum Number of Threads" start="80" end="95" type="uint"/>
<field name="Number of URB Entries" start="72" end="79" type="uint"/>
</field>
<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Pointer" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per-Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Dispatch GRF Start Register For URB Data" start="148" end="152" type="uint"/>
<field name="Patch URB Entry Read Length" start="139" end="145" type="uint"/>
<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="Mask Stack Exception Enable" start="75" end="75" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Pointer" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per-Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Output Vertex Size" start="151" end="156" type="uint"/>
<field name="Output Topology" start="145" end="150" type="uint" prefix="OUTPUT"/>
<field name="Statistics Enable" start="93" end="93" type="bool"/>
<field name="Instance Count" start="64" end="67" type="uint"/>
<field name="Kernel Start Pointer" start="102" end="127" type="offset"/>
- <field name="Scratch Space Base Pointer" start="138" end="159" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="159" type="address"/>
<field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
<field name="Single Program Flow" start="187" end="187" type="uint"/>
<field name="Vector Mask Enable" start="186" end="186" type="bool"/>
<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="Mask Stack Exception Enable" start="75" end="75" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Pointer" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Maximum Number of Threads" start="152" end="159" type="uint"/>
<field name="Push Constant Enable" start="139" end="139" type="bool"/>
</field>
<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Offset" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per-Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Dispatch GRF Start Register for URB Data" start="148" end="152" type="uint"/>
<field name="Vertex URB Entry Read Length" start="139" end="144" type="uint"/>
<field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="SubOpcode" start="16" end="23" type="uint" default="0"/>
<field name="DWord Length" start="0" end="15" type="uint" default="6"/>
- <field name="Scratch Space Base Pointer" start="42" end="63" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="42" end="63" type="address"/>
<field name="Per Thread Scratch Space" start="32" end="35" type="uint"/>
<field name="Maximum Number of Threads" start="80" end="95" type="uint"/>
<field name="Number of URB Entries" start="72" end="79" type="uint"/>
<field name="Accesses UAV" start="78" end="78" type="bool"/>
<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Pointer" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per-Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Dispatch GRF Start Register For URB Data" start="148" end="152" type="uint"/>
<field name="Patch URB Entry Read Length" start="139" end="145" type="uint"/>
<field name="GS accesses UAV" start="76" end="76" type="uint"/>
<field name="Mask Stack Exception Enable" start="75" end="75" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Pointer" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per-Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Output Vertex Size" start="151" end="156" type="uint"/>
<field name="Output Topology" start="145" end="150" type="uint" prefix="OUTPUT"/>
<field name="Statistics Enable" start="93" end="93" type="bool"/>
<field name="Instance Count" start="64" end="67" type="uint"/>
<field name="Kernel Start Pointer" start="102" end="127" type="offset"/>
- <field name="Scratch Space Base Pointer" start="138" end="159" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="159" type="address"/>
<field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
<field name="Single Program Flow" start="187" end="187" type="uint"/>
<field name="Vector Mask Enable" start="186" end="186" type="bool"/>
<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="Mask Stack Exception Enable" start="75" end="75" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Pointer" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Maximum Number of Threads" start="151" end="159" type="uint"/>
<field name="Sample Mask" start="140" end="147" type="uint"/>
<field name="Illegal Opcode Exception Enable" start="77" end="77" type="bool"/>
<field name="VS accesses UAV" start="76" end="76" type="bool"/>
<field name="Software Exception Enable" start="71" end="71" type="bool"/>
- <field name="Scratch Space Base Offset" start="106" end="127" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="106" end="127" type="address"/>
<field name="Per-Thread Scratch Space" start="96" end="99" type="uint"/>
<field name="Dispatch GRF Start Register for URB Data" start="148" end="152" type="uint"/>
<field name="Vertex URB Entry Read Length" start="139" end="144" type="uint"/>
<field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="SubOpcode" start="16" end="23" type="uint" default="0"/>
<field name="DWord Length" start="0" end="15" type="uint" default="6"/>
- <field name="Scratch Space Base Pointer" start="42" end="63" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="42" end="63" type="address"/>
<field name="Stack Size" start="36" end="39" type="uint"/>
<field name="Per Thread Scratch Space" start="32" end="35" type="uint"/>
<field name="Maximum Number of Threads" start="80" end="95" type="uint"/>
<field name="Accesses UAV" start="110" end="110" type="bool"/>
<field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
<field name="Software Exception Enable" start="103" end="103" type="bool"/>
- <field name="Scratch Space Base Pointer" start="138" end="191" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
<field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
<field name="Dispatch GRF Start Register For URB Data" start="212" end="216" type="uint"/>
<field name="Patch URB Entry Read Length" start="203" end="209" type="uint"/>
<field name="Mask Stack Exception Enable" start="107" end="107" type="bool"/>
<field name="Software Exception Enable" start="103" end="103" type="bool"/>
<field name="Expected Vertex Count" start="96" end="101" type="uint"/>
- <field name="Scratch Space Base Pointer" start="138" end="191" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
<field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
<field name="Output Vertex Size" start="215" end="220" type="uint"/>
<field name="Output Topology" start="209" end="214" type="uint" prefix="OUTPUT"/>
<field name="Maximum Number of Threads" start="72" end="80" type="uint"/>
<field name="Instance Count" start="64" end="67" type="uint"/>
<field name="Kernel Start Pointer" start="102" end="159" type="offset"/>
- <field name="Scratch Space Base Pointer" start="170" end="223" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="170" end="223" type="address"/>
<field name="Per-Thread Scratch Space" start="160" end="163" type="uint"/>
<field name="Single Program Flow" start="251" end="251" type="bool"/>
<field name="Vector Mask Enable" start="250" end="250" type="bool"/>
<field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
<field name="Mask Stack Exception Enable" start="107" end="107" type="bool"/>
<field name="Software Exception Enable" start="103" end="103" type="bool"/>
- <field name="Scratch Space Base Pointer" start="138" end="191" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
<field name="Per Thread Scratch Space" start="128" end="131" type="uint"/>
<field name="Maximum Number of Threads Per PSD" start="215" end="223" type="uint"/>
<field name="Push Constant Enable" start="203" end="203" type="bool"/>
<field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
<field name="Accesses UAV" start="108" end="108" type="bool"/>
<field name="Software Exception Enable" start="103" end="103" type="bool"/>
- <field name="Scratch Space Base Pointer" start="138" end="191" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
<field name="Per-Thread Scratch Space " start="128" end="131" type="uint"/>
<field name="Dispatch GRF Start Register For URB Data" start="212" end="216" type="uint"/>
<field name="Vertex URB Entry Read Length" start="203" end="208" type="uint"/>
<field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="SubOpcode" start="16" end="23" type="uint" default="0"/>
<field name="DWord Length" start="0" end="15" type="uint" default="7"/>
- <field name="Scratch Space Base Pointer" start="42" end="63" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="42" end="79" type="address"/>
<field name="Stack Size" start="36" end="39" type="uint"/>
<field name="Per Thread Scratch Space" start="32" end="35" type="uint"/>
- <field name="Scratch Space Base Pointer High" start="64" end="79" type="offset"/>
<field name="Maximum Number of Threads" start="112" end="127" type="uint"/>
<field name="Number of URB Entries" start="104" end="111" type="uint"/>
<field name="Reset Gateway Timer" start="103" end="103" type="uint">
<field name="Accesses UAV" start="110" end="110" type="bool"/>
<field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
<field name="Software Exception Enable" start="103" end="103" type="bool"/>
- <field name="Scratch Space Base Pointer" start="138" end="191" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
<field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
<field name="Dispatch GRF Start Register For URB Data" start="212" end="216" type="uint"/>
<field name="Patch URB Entry Read Length" start="203" end="209" type="uint"/>
<field name="Mask Stack Exception Enable" start="107" end="107" type="bool"/>
<field name="Software Exception Enable" start="103" end="103" type="bool"/>
<field name="Expected Vertex Count" start="96" end="101" type="uint"/>
- <field name="Scratch Space Base Pointer" start="138" end="191" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
<field name="Per-Thread Scratch Space" start="128" end="131" type="uint"/>
<field name="Dispatch GRF Start Register For URB Data [5:4]" start="221" end="222" type="uint"/>
<field name="Output Vertex Size" start="215" end="220" type="uint"/>
<field name="Maximum Number of Threads" start="72" end="80" type="uint"/>
<field name="Instance Count" start="64" end="67" type="uint"/>
<field name="Kernel Start Pointer" start="102" end="159" type="offset"/>
- <field name="Scratch Space Base Pointer" start="170" end="223" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="170" end="223" type="address"/>
<field name="Per-Thread Scratch Space" start="160" end="163" type="uint"/>
<field name="Dispatch GRF Start Register For URB Data [5]" start="252" end="252" type="uint"/>
<field name="Single Program Flow" start="251" end="251" type="bool"/>
<field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
<field name="Mask Stack Exception Enable" start="107" end="107" type="bool"/>
<field name="Software Exception Enable" start="103" end="103" type="bool"/>
- <field name="Scratch Space Base Pointer" start="138" end="191" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
<field name="Per Thread Scratch Space" start="128" end="131" type="uint"/>
<field name="Maximum Number of Threads Per PSD" start="215" end="223" type="uint"/>
<field name="Push Constant Enable" start="203" end="203" type="bool"/>
<field name="Illegal Opcode Exception Enable" start="109" end="109" type="bool"/>
<field name="Accesses UAV" start="108" end="108" type="bool"/>
<field name="Software Exception Enable" start="103" end="103" type="bool"/>
- <field name="Scratch Space Base Pointer" start="138" end="191" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="138" end="191" type="address"/>
<field name="Per-Thread Scratch Space " start="128" end="131" type="uint"/>
<field name="Dispatch GRF Start Register For URB Data" start="212" end="216" type="uint"/>
<field name="Vertex URB Entry Read Length" start="203" end="208" type="uint"/>
<field name="Media Command Opcode" start="24" end="26" type="uint" default="0"/>
<field name="SubOpcode" start="16" end="23" type="uint" default="0"/>
<field name="DWord Length" start="0" end="15" type="uint" default="7"/>
- <field name="Scratch Space Base Pointer" start="42" end="63" type="offset"/>
+ <field name="Scratch Space Base Pointer" start="42" end="79" type="address"/>
<field name="Stack Size" start="36" end="39" type="uint"/>
<field name="Per Thread Scratch Space" start="32" end="35" type="uint"/>
- <field name="Scratch Space Base Pointer High" start="64" end="79" type="offset"/>
<field name="Maximum Number of Threads" start="112" end="127" type="uint"/>
<field name="Number of URB Entries" start="104" end="111" type="uint"/>
<field name="Reset Gateway Timer" start="103" end="103" type="uint">
else
anv_batch_emit(&pipeline->batch, GENX(3DSTATE_VS), vs) {
vs.KernelStartPointer = pipeline->vs_vec4;
- vs.ScratchSpaceBaseOffset = pipeline->scratch_start[MESA_SHADER_VERTEX];
+
+ vs.ScratchSpaceBasePointer = (struct anv_address) {
+ .bo = NULL,
+ .offset = pipeline->scratch_start[MESA_SHADER_VERTEX],
+ };
vs.PerThreadScratchSpace = scratch_space(&vs_prog_data->base.base);
vs.DispatchGRFStartRegisterforURBData =
} else {
anv_batch_emit(&pipeline->batch, GENX(3DSTATE_GS), gs) {
gs.KernelStartPointer = pipeline->gs_kernel;
- gs.ScratchSpaceBasePointer = pipeline->scratch_start[MESA_SHADER_GEOMETRY];
+
+ gs.ScratchSpaceBasePointer = (struct anv_address) {
+ .bo = NULL,
+ .offset = pipeline->scratch_start[MESA_SHADER_GEOMETRY],
+ };
gs.PerThreadScratchSpace = scratch_space(&gs_prog_data->base.base);
gs.OutputVertexSize = gs_prog_data->output_vertex_size_hwords * 2 - 1;
anv_batch_emit(&pipeline->batch, GENX(3DSTATE_PS), ps) {
ps.KernelStartPointer0 = pipeline->ps_ksp0;
- ps.ScratchSpaceBasePointer = pipeline->scratch_start[MESA_SHADER_FRAGMENT];
+
+ ps.ScratchSpaceBasePointer = (struct anv_address) {
+ .bo = NULL,
+ .offset = pipeline->scratch_start[MESA_SHADER_FRAGMENT],
+ };
ps.PerThreadScratchSpace = scratch_space(&wm_prog_data->base);
ps.MaximumNumberofThreads = device->info.max_wm_threads - 1;
ps.PushConstantEnable = wm_prog_data->base.nr_params > 0;
gs.BindingTableEntryCount = 0;
gs.ExpectedVertexCount = gs_prog_data->vertices_in;
- gs.ScratchSpaceBasePointer = pipeline->scratch_start[MESA_SHADER_GEOMETRY];
+ gs.ScratchSpaceBasePointer = (struct anv_address) {
+ .bo = NULL,
+ .offset = pipeline->scratch_start[MESA_SHADER_GEOMETRY],
+ };
gs.PerThreadScratchSpace = scratch_space(&gs_prog_data->base.base);
gs.OutputVertexSize = gs_prog_data->output_vertex_size_hwords * 2 - 1;
gs.OutputTopology = gs_prog_data->output_topology;
vs.AccessesUAV = false;
vs.SoftwareExceptionEnable = false;
- vs.ScratchSpaceBasePointer = pipeline->scratch_start[MESA_SHADER_VERTEX],
+ vs.ScratchSpaceBasePointer = (struct anv_address) {
+ .bo = NULL,
+ .offset = pipeline->scratch_start[MESA_SHADER_VERTEX],
+ };
vs.PerThreadScratchSpace = scratch_space(&vs_prog_data->base.base);
vs.DispatchGRFStartRegisterForURBData =
ps.MaximumNumberofThreadsPerPSD = 64 - num_thread_bias;
- ps.ScratchSpaceBasePointer = pipeline->scratch_start[MESA_SHADER_FRAGMENT];
+ ps.ScratchSpaceBasePointer = (struct anv_address) {
+ .bo = NULL,
+ .offset = pipeline->scratch_start[MESA_SHADER_FRAGMENT],
+ };
ps.PerThreadScratchSpace = scratch_space(&wm_prog_data->base);
ps.DispatchGRFStartRegisterForConstantSetupData0 =
cs_prog_data->push.cross_thread.regs, 2);
anv_batch_emit(&pipeline->batch, GENX(MEDIA_VFE_STATE), vfe) {
- vfe.ScratchSpaceBasePointer = pipeline->scratch_start[MESA_SHADER_COMPUTE];
+ vfe.ScratchSpaceBasePointer = (struct anv_address) {
+ .bo = NULL,
+ .offset = pipeline->scratch_start[MESA_SHADER_COMPUTE],
+ };
vfe.PerThreadScratchSpace = ffs(cs_prog_data->base.total_scratch / 2048);
#if GEN_GEN > 7
- vfe.ScratchSpaceBasePointerHigh = 0;
vfe.StackSize = 0;
#else
vfe.GPGPUMode = true;