#include <stdio.h>
#include <assert.h>
+#ifndef __gen_validate_value
+#define __gen_validate_value(x)
+#endif
+
#ifndef __gen_field_functions
#define __gen_field_functions
uint32_t dw;
};
+static inline uint64_t
+__gen_mbo(uint32_t start, uint32_t end)
+{
+ return (~0ul >> (64 - (end - start + 1))) << start;
+}
+
static inline uint64_t
__gen_field(uint64_t v, uint32_t start, uint32_t end)
{
+ __gen_validate_value(v);
#if DEBUG
if (end - start + 1 < 64)
assert(v < 1ul << (end - start + 1));
static inline uint64_t
__gen_offset(uint64_t v, uint32_t start, uint32_t end)
{
+ __gen_validate_value(v);
#if DEBUG
uint64_t mask = (~0ul >> (64 - (end - start + 1))) << start;
static inline uint32_t
__gen_float(float v)
{
+ __gen_validate_value(v);
return ((union __gen_value) { .f = (v) }).dw;
}
struct GEN75_MI_STORE_REGISTER_MEM {
uint32_t CommandType;
uint32_t MICommandOpcode;
- uint32_t UseGlobalGTT;
+ bool UseGlobalGTT;
uint32_t PredicateEnable;
uint32_t DwordLength;
uint32_t RegisterAddress;
._3DCommandSubOpcode = 1, \
.DwordLength = 8
+struct GEN75_MEMORY_OBJECT_CONTROL_STATE {
+ uint32_t LLCeLLCCacheabilityControlLLCCC;
+ uint32_t L3CacheabilityControlL3CC;
+};
+
+static inline void
+GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_MEMORY_OBJECT_CONTROL_STATE * restrict values)
+{
+ uint32_t *dw = (uint32_t * restrict) dst;
+
+ dw[0] =
+ __gen_field(values->LLCeLLCCacheabilityControlLLCCC, 1, 2) |
+ __gen_field(values->L3CacheabilityControlL3CC, 0, 0) |
+ 0;
+
+}
+
struct GEN75_STATE_BASE_ADDRESS {
uint32_t CommandType;
uint32_t CommandSubType;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
__gen_address_type GeneralStateBaseAddress;
- uint32_t GeneralStateMemoryObjectControlState;
- uint32_t StatelessDataPortAccessMemoryObjectControlState;
- uint32_t GeneralStateBaseAddressModifyEnable;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE GeneralStateMemoryObjectControlState;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE StatelessDataPortAccessMemoryObjectControlState;
+ bool GeneralStateBaseAddressModifyEnable;
__gen_address_type SurfaceStateBaseAddress;
- uint32_t SurfaceStateMemoryObjectControlState;
- uint32_t SurfaceStateBaseAddressModifyEnable;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE SurfaceStateMemoryObjectControlState;
+ bool SurfaceStateBaseAddressModifyEnable;
__gen_address_type DynamicStateBaseAddress;
- uint32_t DynamicStateMemoryObjectControlState;
- uint32_t DynamicStateBaseAddressModifyEnable;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE DynamicStateMemoryObjectControlState;
+ bool DynamicStateBaseAddressModifyEnable;
__gen_address_type IndirectObjectBaseAddress;
- uint32_t IndirectObjectMemoryObjectControlState;
- uint32_t IndirectObjectBaseAddressModifyEnable;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE IndirectObjectMemoryObjectControlState;
+ bool IndirectObjectBaseAddressModifyEnable;
__gen_address_type InstructionBaseAddress;
- uint32_t InstructionMemoryObjectControlState;
- uint32_t InstructionBaseAddressModifyEnable;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE InstructionMemoryObjectControlState;
+ bool InstructionBaseAddressModifyEnable;
__gen_address_type GeneralStateAccessUpperBound;
- uint32_t GeneralStateAccessUpperBoundModifyEnable;
+ bool GeneralStateAccessUpperBoundModifyEnable;
__gen_address_type DynamicStateAccessUpperBound;
- uint32_t DynamicStateAccessUpperBoundModifyEnable;
+ bool DynamicStateAccessUpperBoundModifyEnable;
__gen_address_type IndirectObjectAccessUpperBound;
- uint32_t IndirectObjectAccessUpperBoundModifyEnable;
+ bool IndirectObjectAccessUpperBoundModifyEnable;
__gen_address_type InstructionAccessUpperBound;
- uint32_t InstructionAccessUpperBoundModifyEnable;
+ bool InstructionAccessUpperBoundModifyEnable;
};
static inline void
__gen_field(values->DwordLength, 0, 7) |
0;
+ uint32_t dw_GeneralStateMemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_GeneralStateMemoryObjectControlState, &values->GeneralStateMemoryObjectControlState);
+ uint32_t dw_StatelessDataPortAccessMemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_StatelessDataPortAccessMemoryObjectControlState, &values->StatelessDataPortAccessMemoryObjectControlState);
uint32_t dw1 =
- /* Struct GeneralStateMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
- /* Struct StatelessDataPortAccessMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_GeneralStateMemoryObjectControlState, 8, 11) |
+ __gen_field(dw_StatelessDataPortAccessMemoryObjectControlState, 4, 7) |
__gen_field(values->GeneralStateBaseAddressModifyEnable, 0, 0) |
0;
dw[1] =
__gen_combine_address(data, &dw[1], values->GeneralStateBaseAddress, dw1);
+ uint32_t dw_SurfaceStateMemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SurfaceStateMemoryObjectControlState, &values->SurfaceStateMemoryObjectControlState);
uint32_t dw2 =
- /* Struct SurfaceStateMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_SurfaceStateMemoryObjectControlState, 8, 11) |
__gen_field(values->SurfaceStateBaseAddressModifyEnable, 0, 0) |
0;
dw[2] =
__gen_combine_address(data, &dw[2], values->SurfaceStateBaseAddress, dw2);
+ uint32_t dw_DynamicStateMemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_DynamicStateMemoryObjectControlState, &values->DynamicStateMemoryObjectControlState);
uint32_t dw3 =
- /* Struct DynamicStateMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_DynamicStateMemoryObjectControlState, 8, 11) |
__gen_field(values->DynamicStateBaseAddressModifyEnable, 0, 0) |
0;
dw[3] =
__gen_combine_address(data, &dw[3], values->DynamicStateBaseAddress, dw3);
+ uint32_t dw_IndirectObjectMemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_IndirectObjectMemoryObjectControlState, &values->IndirectObjectMemoryObjectControlState);
uint32_t dw4 =
- /* Struct IndirectObjectMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_IndirectObjectMemoryObjectControlState, 8, 11) |
__gen_field(values->IndirectObjectBaseAddressModifyEnable, 0, 0) |
0;
dw[4] =
__gen_combine_address(data, &dw[4], values->IndirectObjectBaseAddress, dw4);
+ uint32_t dw_InstructionMemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_InstructionMemoryObjectControlState, &values->InstructionMemoryObjectControlState);
uint32_t dw5 =
- /* Struct InstructionMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_InstructionMemoryObjectControlState, 8, 11) |
__gen_field(values->InstructionBaseAddressModifyEnable, 0, 0) |
0;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
__gen_address_type SWTessellationBaseAddress;
- uint32_t SWTessellationMemoryObjectControlState;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE SWTessellationMemoryObjectControlState;
};
static inline void
__gen_field(values->DwordLength, 0, 7) |
0;
+ uint32_t dw_SWTessellationMemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SWTessellationMemoryObjectControlState, &values->SWTessellationMemoryObjectControlState);
uint32_t dw1 =
- /* Struct SWTessellationMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_SWTessellationMemoryObjectControlState, 8, 11) |
0;
dw[1] =
uint32_t CommandSubType;
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
- uint32_t IndirectParameterEnable;
+ bool IndirectParameterEnable;
uint32_t UAVCoherencyRequired;
- uint32_t PredicateEnable;
+ bool PredicateEnable;
uint32_t DwordLength;
- uint32_t EndOffsetEnable;
+ bool EndOffsetEnable;
#define SEQUENTIAL 0
#define RANDOM 1
uint32_t VertexAccessType;
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t AACoverageBias;
- uint32_t AACoverageSlope;
- uint32_t AACoverageEndCapBias;
- uint32_t AACoverageEndCapSlope;
+ float AACoverageBias;
+ float AACoverageSlope;
+ float AACoverageEndCapBias;
+ float AACoverageEndCapSlope;
};
static inline void
0;
dw[1] =
- __gen_field(values->AACoverageBias, 16, 23) |
- __gen_field(values->AACoverageSlope, 0, 7) |
+ __gen_field(values->AACoverageBias * (1 << 8), 16, 23) |
+ __gen_field(values->AACoverageSlope * (1 << 8), 0, 7) |
0;
dw[2] =
- __gen_field(values->AACoverageEndCapBias, 16, 23) |
- __gen_field(values->AACoverageEndCapSlope, 0, 7) |
+ __gen_field(values->AACoverageEndCapBias * (1 << 8), 16, 23) |
+ __gen_field(values->AACoverageEndCapSlope * (1 << 8), 0, 7) |
0;
}
._3DCommandOpcode = 0, \
._3DCommandSubOpcode = 70
+struct GEN75_BINDING_TABLE_EDIT_ENTRY {
+ uint32_t BindingTableIndex;
+ uint32_t SurfaceStatePointer;
+};
+
+static inline void
+GEN75_BINDING_TABLE_EDIT_ENTRY_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_BINDING_TABLE_EDIT_ENTRY * restrict values)
+{
+ uint32_t *dw = (uint32_t * restrict) dst;
+
+ dw[0] =
+ __gen_field(values->BindingTableIndex, 16, 23) |
+ __gen_offset(values->SurfaceStatePointer, 0, 15) |
+ 0;
+
+}
+
struct GEN75_3DSTATE_BINDING_TABLE_EDIT_DS {
uint32_t CommandType;
uint32_t CommandSubType;
uint32_t DwordLength;
__gen_address_type BindingTablePoolBaseAddress;
uint32_t BindingTablePoolEnable;
- uint32_t SurfaceObjectControlState;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState;
__gen_address_type BindingTablePoolUpperBound;
};
__gen_field(values->DwordLength, 0, 7) |
0;
+ uint32_t dw_SurfaceObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SurfaceObjectControlState, &values->SurfaceObjectControlState);
uint32_t dw1 =
__gen_field(values->BindingTablePoolEnable, 11, 11) |
- /* Struct SurfaceObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_SurfaceObjectControlState, 7, 10) |
0;
dw[1] =
dw[1] =
__gen_offset(values->BlendStatePointer, 6, 31) |
+ __gen_mbo(0, 0) |
0;
}
dw[1] =
__gen_offset(values->ColorCalcStatePointer, 6, 31) |
+ __gen_mbo(0, 0) |
0;
}
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
uint32_t DepthClearValue;
- uint32_t DepthClearValueValid;
+ bool DepthClearValueValid;
};
static inline void
uint32_t DwordLength;
uint32_t FrontWinding;
uint32_t VertexSubPixelPrecisionSelect;
- uint32_t EarlyCullEnable;
+ bool EarlyCullEnable;
#define CULLMODE_BOTH 0
#define CULLMODE_NONE 1
#define CULLMODE_FRONT 2
#define CULLMODE_BACK 3
uint32_t CullMode;
- uint32_t ClipperStatisticsEnable;
+ bool ClipperStatisticsEnable;
uint32_t UserClipDistanceCullTestEnableBitmask;
- uint32_t ClipEnable;
+ bool ClipEnable;
#define APIMODE_OGL 0
uint32_t APIMode;
- uint32_t ViewportXYClipTestEnable;
- uint32_t ViewportZClipTestEnable;
- uint32_t GuardbandClipTestEnable;
+ bool ViewportXYClipTestEnable;
+ bool ViewportZClipTestEnable;
+ bool GuardbandClipTestEnable;
uint32_t UserClipDistanceClipTestEnableBitmask;
#define CLIPMODE_NORMAL 0
#define CLIPMODE_REJECT_ALL 3
#define CLIPMODE_ACCEPT_ALL 4
uint32_t ClipMode;
- uint32_t PerspectiveDivideDisable;
- uint32_t NonPerspectiveBarycentricEnable;
+ bool PerspectiveDivideDisable;
+ bool NonPerspectiveBarycentricEnable;
#define Vertex0 0
#define Vertex1 1
#define Vertex2 2
#define Vertex1 1
#define Vertex2 2
uint32_t TriangleFanProvokingVertexSelect;
- uint32_t MinimumPointWidth;
- uint32_t MaximumPointWidth;
- uint32_t ForceZeroRTAIndexEnable;
+ float MinimumPointWidth;
+ float MaximumPointWidth;
+ bool ForceZeroRTAIndexEnable;
uint32_t MaximumVPIndex;
};
0;
dw[3] =
- __gen_field(values->MinimumPointWidth, 17, 27) |
- __gen_field(values->MaximumPointWidth, 6, 16) |
+ __gen_field(values->MinimumPointWidth * (1 << 3), 17, 27) |
+ __gen_field(values->MaximumPointWidth * (1 << 3), 6, 16) |
__gen_field(values->ForceZeroRTAIndexEnable, 5, 5) |
__gen_field(values->MaximumVPIndex, 0, 3) |
0;
._3DCommandSubOpcode = 26, \
.DwordLength = 5
+struct GEN75_3DSTATE_CONSTANT_BODY {
+ uint32_t ConstantBuffer1ReadLength;
+ uint32_t ConstantBuffer0ReadLength;
+ uint32_t ConstantBuffer3ReadLength;
+ uint32_t ConstantBuffer2ReadLength;
+ __gen_address_type PointerToConstantBuffer0;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE ConstantBufferObjectControlState;
+ __gen_address_type PointerToConstantBuffer1;
+ __gen_address_type PointerToConstantBuffer2;
+ __gen_address_type PointerToConstantBuffer3;
+};
+
+static inline void
+GEN75_3DSTATE_CONSTANT_BODY_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_3DSTATE_CONSTANT_BODY * restrict values)
+{
+ uint32_t *dw = (uint32_t * restrict) dst;
+
+ dw[0] =
+ __gen_field(values->ConstantBuffer1ReadLength, 16, 31) |
+ __gen_field(values->ConstantBuffer0ReadLength, 0, 15) |
+ 0;
+
+ dw[1] =
+ __gen_field(values->ConstantBuffer3ReadLength, 16, 31) |
+ __gen_field(values->ConstantBuffer2ReadLength, 0, 15) |
+ 0;
+
+ uint32_t dw_ConstantBufferObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_ConstantBufferObjectControlState, &values->ConstantBufferObjectControlState);
+ uint32_t dw2 =
+ __gen_field(dw_ConstantBufferObjectControlState, 0, 4) |
+ 0;
+
+ dw[2] =
+ __gen_combine_address(data, &dw[2], values->PointerToConstantBuffer0, dw2);
+
+ uint32_t dw3 =
+ 0;
+
+ dw[3] =
+ __gen_combine_address(data, &dw[3], values->PointerToConstantBuffer1, dw3);
+
+ uint32_t dw4 =
+ 0;
+
+ dw[4] =
+ __gen_combine_address(data, &dw[4], values->PointerToConstantBuffer2, dw4);
+
+ uint32_t dw5 =
+ 0;
+
+ dw[5] =
+ __gen_combine_address(data, &dw[5], values->PointerToConstantBuffer3, dw5);
+
+}
+
struct GEN75_3DSTATE_CONSTANT_DS {
uint32_t CommandType;
uint32_t CommandSubType;
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t ConstantBody;
+ struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody;
};
static inline void
__gen_field(values->DwordLength, 0, 7) |
0;
- dw[1] =
- /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
- 0;
-
+ GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
}
#define GEN75_3DSTATE_CONSTANT_GS_length 0x00000007
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t ConstantBody;
+ struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody;
};
static inline void
__gen_field(values->DwordLength, 0, 7) |
0;
- dw[1] =
- /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
- 0;
-
+ GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
}
#define GEN75_3DSTATE_CONSTANT_HS_length 0x00000007
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t ConstantBody;
+ struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody;
};
static inline void
__gen_field(values->DwordLength, 0, 7) |
0;
- dw[1] =
- /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
- 0;
-
+ GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
}
#define GEN75_3DSTATE_CONSTANT_PS_length 0x00000007
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t ConstantBody;
+ struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody;
};
static inline void
__gen_field(values->DwordLength, 0, 7) |
0;
- dw[1] =
- /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
- 0;
-
+ GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
}
#define GEN75_3DSTATE_CONSTANT_VS_length 0x00000007
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t ConstantBody;
+ struct GEN75_3DSTATE_CONSTANT_BODY ConstantBody;
};
static inline void
__gen_field(values->DwordLength, 0, 7) |
0;
- dw[1] =
- /* Struct ConstantBody: found 3DSTATE_CONSTANT(Body) */
- 0;
-
+ GEN75_3DSTATE_CONSTANT_BODY_pack(data, &dw[1], &values->ConstantBody);
}
#define GEN75_3DSTATE_DEPTH_BUFFER_length 0x00000007
#define SURFTYPE_CUBE 3
#define SURFTYPE_NULL 7
uint32_t SurfaceType;
- uint32_t DepthWriteEnable;
- uint32_t StencilWriteEnable;
- uint32_t HierarchicalDepthBufferEnable;
+ bool DepthWriteEnable;
+ bool StencilWriteEnable;
+ bool HierarchicalDepthBufferEnable;
#define D32_FLOAT 1
#define D24_UNORM_X8_UINT 3
#define D16_UNORM 5
#define SURFTYPE_CUBEmustbezero 0
uint32_t Depth;
uint32_t MinimumArrayElement;
- uint32_t DepthBufferObjectControlState;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE DepthBufferObjectControlState;
uint32_t DepthCoordinateOffsetY;
uint32_t DepthCoordinateOffsetX;
uint32_t RenderTargetViewExtent;
__gen_field(values->LOD, 0, 3) |
0;
+ uint32_t dw_DepthBufferObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_DepthBufferObjectControlState, &values->DepthBufferObjectControlState);
dw[4] =
__gen_field(values->Depth, 21, 31) |
__gen_field(values->MinimumArrayElement, 10, 20) |
- /* Struct DepthBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_DepthBufferObjectControlState, 0, 3) |
0;
dw[5] =
dw[1] =
__gen_offset(values->PointertoDEPTH_STENCIL_STATE, 6, 31) |
+ __gen_mbo(0, 0) |
0;
}
#define IEEE754 0
#define Alternate 1
uint32_t FloatingPointMode;
- uint32_t AccessesUAV;
- uint32_t IllegalOpcodeExceptionEnable;
- uint32_t SoftwareExceptionEnable;
+ bool AccessesUAV;
+ bool IllegalOpcodeExceptionEnable;
+ bool SoftwareExceptionEnable;
uint32_t ScratchSpaceBasePointer;
uint32_t PerThreadScratchSpace;
uint32_t DispatchGRFStartRegisterForURBData;
uint32_t PatchURBEntryReadLength;
uint32_t PatchURBEntryReadOffset;
uint32_t MaximumNumberofThreads;
- uint32_t StatisticsEnable;
- uint32_t ComputeWCoordinateEnable;
- uint32_t DSCacheDisable;
- uint32_t DSFunctionEnable;
+ bool StatisticsEnable;
+ bool ComputeWCoordinateEnable;
+ bool DSCacheDisable;
+ bool DSFunctionEnable;
};
static inline void
._3DCommandOpcode = 0, \
._3DCommandSubOpcode = 55
+struct GEN75_GATHER_CONSTANT_ENTRY {
+ uint32_t ConstantBufferOffset;
+ uint32_t ChannelMask;
+ uint32_t BindingTableIndexOffset;
+};
+
+static inline void
+GEN75_GATHER_CONSTANT_ENTRY_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_GATHER_CONSTANT_ENTRY * restrict values)
+{
+ uint32_t *dw = (uint32_t * restrict) dst;
+
+ dw[0] =
+ __gen_offset(values->ConstantBufferOffset, 8, 15) |
+ __gen_field(values->ChannelMask, 4, 7) |
+ __gen_field(values->BindingTableIndexOffset, 0, 3) |
+ 0;
+
+}
+
struct GEN75_3DSTATE_GATHER_CONSTANT_DS {
uint32_t CommandType;
uint32_t CommandSubType;
uint32_t ConstantBufferValid;
uint32_t ConstantBufferBindingTableBlock;
uint32_t GatherBufferOffset;
- uint32_t ConstantBufferDx9Enable;
+ bool ConstantBufferDx9Enable;
/* variable length fields follow */
};
uint32_t ConstantBufferValid;
uint32_t ConstantBufferBindingTableBlock;
uint32_t GatherBufferOffset;
- uint32_t ConstantBufferDx9Enable;
+ bool ConstantBufferDx9Enable;
/* variable length fields follow */
};
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
__gen_address_type GatherPoolBaseAddress;
- uint32_t GatherPoolEnable;
- uint32_t MemoryObjectControlState;
+ bool GatherPoolEnable;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState;
__gen_address_type GatherPoolUpperBound;
};
__gen_field(values->DwordLength, 0, 7) |
0;
+ uint32_t dw_MemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_MemoryObjectControlState, &values->MemoryObjectControlState);
uint32_t dw1 =
__gen_field(values->GatherPoolEnable, 11, 11) |
- /* Struct MemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_mbo(4, 5) |
+ __gen_field(dw_MemoryObjectControlState, 0, 3) |
0;
dw[1] =
#define IEEE754 0
#define alternate 1
uint32_t FloatingPointMode;
- uint32_t IllegalOpcodeExceptionEnable;
+ bool IllegalOpcodeExceptionEnable;
uint32_t GSaccessesUAV;
- uint32_t MaskStackExceptionEnable;
- uint32_t SoftwareExceptionEnable;
+ bool MaskStackExceptionEnable;
+ bool SoftwareExceptionEnable;
uint32_t ScratchSpaceBasePointer;
uint32_t PerThreadScratchSpace;
uint32_t OutputVertexSize;
uint32_t OutputTopology;
uint32_t VertexURBEntryReadLength;
- uint32_t IncludeVertexHandles;
+ bool IncludeVertexHandles;
uint32_t VertexURBEntryReadOffset;
uint32_t DispatchGRFStartRegisterforURBData;
uint32_t MaximumNumberofThreads;
uint32_t DispatchMode;
uint32_t GSStatisticsEnable;
uint32_t GSInvocationsIncrementValue;
- uint32_t IncludePrimitiveID;
+ bool IncludePrimitiveID;
uint32_t Hint;
#define REORDER_LEADING 0
#define REORDER_TRAILING 1
uint32_t ReorderMode;
- uint32_t DiscardAdjacency;
- uint32_t GSEnable;
+ bool DiscardAdjacency;
+ bool GSEnable;
#define GSCTL_CUT 0
#define GSCTL_SID 1
uint32_t ControlDataFormat;
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t HierarchicalDepthBufferObjectControlState;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE HierarchicalDepthBufferObjectControlState;
uint32_t SurfacePitch;
__gen_address_type SurfaceBaseAddress;
};
__gen_field(values->DwordLength, 0, 7) |
0;
+ uint32_t dw_HierarchicalDepthBufferObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_HierarchicalDepthBufferObjectControlState, &values->HierarchicalDepthBufferObjectControlState);
dw[1] =
- /* Struct HierarchicalDepthBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_HierarchicalDepthBufferObjectControlState, 25, 28) |
__gen_field(values->SurfacePitch, 0, 16) |
0;
#define IEEE754 0
#define alternate 1
uint32_t FloatingPointMode;
- uint32_t IllegalOpcodeExceptionEnable;
- uint32_t SoftwareExceptionEnable;
+ bool IllegalOpcodeExceptionEnable;
+ bool SoftwareExceptionEnable;
uint32_t MaximumNumberofThreads;
- uint32_t Enable;
- uint32_t StatisticsEnable;
+ bool Enable;
+ bool StatisticsEnable;
uint32_t InstanceCount;
uint32_t KernelStartPointer;
uint32_t ScratchSpaceBasePointer;
#define Dmask 0
#define Vmask 1
uint32_t VectorMaskEnable;
- uint32_t HSaccessesUAV;
- uint32_t IncludeVertexHandles;
+ bool HSaccessesUAV;
+ bool IncludeVertexHandles;
uint32_t DispatchGRFStartRegisterForURBData;
uint32_t VertexURBEntryReadLength;
uint32_t VertexURBEntryReadOffset;
uint32_t CommandSubType;
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
- uint32_t MemoryObjectControlState;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE MemoryObjectControlState;
#define INDEX_BYTE 0
#define INDEX_WORD 1
#define INDEX_DWORD 2
{
uint32_t *dw = (uint32_t * restrict) dst;
+ uint32_t dw_MemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_MemoryObjectControlState, &values->MemoryObjectControlState);
dw[0] =
__gen_field(values->CommandType, 29, 31) |
__gen_field(values->CommandSubType, 27, 28) |
__gen_field(values->_3DCommandOpcode, 24, 26) |
__gen_field(values->_3DCommandSubOpcode, 16, 23) |
- /* Struct MemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_MemoryObjectControlState, 12, 15) |
__gen_field(values->IndexFormat, 8, 9) |
__gen_field(values->DwordLength, 0, 7) |
0;
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t ModifyEnableCurrentRepeatCounterCurrentStippleIndex;
+ bool ModifyEnableCurrentRepeatCounterCurrentStippleIndex;
uint32_t CurrentRepeatCounter;
uint32_t CurrentStippleIndex;
uint32_t LineStipplePattern;
- uint32_t LineStippleInverseRepeatCount;
+ float LineStippleInverseRepeatCount;
uint32_t LineStippleRepeatCount;
};
0;
dw[2] =
- __gen_field(values->LineStippleInverseRepeatCount, 15, 31) |
+ __gen_field(values->LineStippleInverseRepeatCount * (1 << 16), 15, 31) |
__gen_field(values->LineStippleRepeatCount, 0, 8) |
0;
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t MultiSampleEnable;
+ bool MultiSampleEnable;
#define PIXLOC_CENTER 0
#define PIXLOC_UL_CORNER 1
uint32_t PixelLocation;
#define NUMSAMPLES_4 2
#define NUMSAMPLES_8 3
uint32_t NumberofMultisamples;
- uint32_t Sample3XOffset;
- uint32_t Sample3YOffset;
- uint32_t Sample2XOffset;
- uint32_t Sample2YOffset;
- uint32_t Sample1XOffset;
- uint32_t Sample1YOffset;
- uint32_t Sample0XOffset;
- uint32_t Sample0YOffset;
- uint32_t Sample7XOffset;
- uint32_t Sample7YOffset;
- uint32_t Sample6XOffset;
- uint32_t Sample6YOffset;
- uint32_t Sample5XOffset;
- uint32_t Sample5YOffset;
- uint32_t Sample4XOffset;
- uint32_t Sample4YOffset;
+ float Sample3XOffset;
+ float Sample3YOffset;
+ float Sample2XOffset;
+ float Sample2YOffset;
+ float Sample1XOffset;
+ float Sample1YOffset;
+ float Sample0XOffset;
+ float Sample0YOffset;
+ float Sample7XOffset;
+ float Sample7YOffset;
+ float Sample6XOffset;
+ float Sample6YOffset;
+ float Sample5XOffset;
+ float Sample5YOffset;
+ float Sample4XOffset;
+ float Sample4YOffset;
};
static inline void
0;
dw[2] =
- __gen_field(values->Sample3XOffset, 28, 31) |
- __gen_field(values->Sample3YOffset, 24, 27) |
- __gen_field(values->Sample2XOffset, 20, 23) |
- __gen_field(values->Sample2YOffset, 16, 19) |
- __gen_field(values->Sample1XOffset, 12, 15) |
- __gen_field(values->Sample1YOffset, 8, 11) |
- __gen_field(values->Sample0XOffset, 4, 7) |
- __gen_field(values->Sample0YOffset, 0, 3) |
+ __gen_field(values->Sample3XOffset * (1 << 4), 28, 31) |
+ __gen_field(values->Sample3YOffset * (1 << 4), 24, 27) |
+ __gen_field(values->Sample2XOffset * (1 << 4), 20, 23) |
+ __gen_field(values->Sample2YOffset * (1 << 4), 16, 19) |
+ __gen_field(values->Sample1XOffset * (1 << 4), 12, 15) |
+ __gen_field(values->Sample1YOffset * (1 << 4), 8, 11) |
+ __gen_field(values->Sample0XOffset * (1 << 4), 4, 7) |
+ __gen_field(values->Sample0YOffset * (1 << 4), 0, 3) |
0;
dw[3] =
- __gen_field(values->Sample7XOffset, 28, 31) |
- __gen_field(values->Sample7YOffset, 24, 27) |
- __gen_field(values->Sample6XOffset, 20, 23) |
- __gen_field(values->Sample6YOffset, 16, 19) |
- __gen_field(values->Sample5XOffset, 12, 15) |
- __gen_field(values->Sample5YOffset, 8, 11) |
- __gen_field(values->Sample4XOffset, 4, 7) |
- __gen_field(values->Sample4YOffset, 0, 3) |
+ __gen_field(values->Sample7XOffset * (1 << 4), 28, 31) |
+ __gen_field(values->Sample7YOffset * (1 << 4), 24, 27) |
+ __gen_field(values->Sample6XOffset * (1 << 4), 20, 23) |
+ __gen_field(values->Sample6YOffset * (1 << 4), 16, 19) |
+ __gen_field(values->Sample5XOffset * (1 << 4), 12, 15) |
+ __gen_field(values->Sample5YOffset * (1 << 4), 8, 11) |
+ __gen_field(values->Sample4XOffset * (1 << 4), 4, 7) |
+ __gen_field(values->Sample4YOffset * (1 << 4), 0, 3) |
0;
}
#define RD 2
#define RTZ 3
uint32_t RoundingMode;
- uint32_t IllegalOpcodeExceptionEnable;
- uint32_t MaskStackExceptionEnable;
- uint32_t SoftwareExceptionEnable;
+ bool IllegalOpcodeExceptionEnable;
+ bool MaskStackExceptionEnable;
+ bool SoftwareExceptionEnable;
uint32_t ScratchSpaceBasePointer;
uint32_t PerThreadScratchSpace;
uint32_t MaximumNumberofThreads;
uint32_t SampleMask;
- uint32_t PushConstantEnable;
- uint32_t AttributeEnable;
- uint32_t oMaskPresenttoRenderTarget;
- uint32_t RenderTargetFastClearEnable;
- uint32_t DualSourceBlendEnable;
- uint32_t RenderTargetResolveEnable;
- uint32_t PSAccessesUAV;
+ bool PushConstantEnable;
+ bool AttributeEnable;
+ bool oMaskPresenttoRenderTarget;
+ bool RenderTargetFastClearEnable;
+ bool DualSourceBlendEnable;
+ bool RenderTargetResolveEnable;
+ bool PSAccessesUAV;
#define POSOFFSET_NONE 0
#define POSOFFSET_CENTROID 2
#define POSOFFSET_SAMPLE 3
uint32_t PositionXYOffsetSelect;
- uint32_t _32PixelDispatchEnable;
- uint32_t _16PixelDispatchEnable;
- uint32_t _8PixelDispatchEnable;
+ bool _32PixelDispatchEnable;
+ bool _16PixelDispatchEnable;
+ bool _8PixelDispatchEnable;
uint32_t DispatchGRFStartRegisterforConstantSetupData0;
uint32_t DispatchGRFStartRegisterforConstantSetupData1;
uint32_t DispatchGRFStartRegisterforConstantSetupData2;
#define NRM_NUMRASTSAMPLES_8 3
#define NRM_NUMRASTSAMPLES_16 4
uint32_t NumberofRasterizationMultisamples;
- uint32_t Sample3XOffset;
- uint32_t Sample3YOffset;
- uint32_t Sample2XOffset;
- uint32_t Sample2YOffset;
- uint32_t Sample1XOffset;
- uint32_t Sample1YOffset;
- uint32_t Sample0XOffset;
- uint32_t Sample0YOffset;
- uint32_t Sample7XOffset;
- uint32_t Sample7YOffset;
- uint32_t Sample6XOffset;
- uint32_t Sample6YOffset;
- uint32_t Sample5XOffset;
- uint32_t Sample5YOffset;
- uint32_t Sample4XOffset;
- uint32_t Sample4YOffset;
- uint32_t Sample11XOffset;
- uint32_t Sample11YOffset;
- uint32_t Sample10XOffset;
- uint32_t Sample10YOffset;
- uint32_t Sample9XOffset;
- uint32_t Sample9YOffset;
- uint32_t Sample8XOffset;
- uint32_t Sample8YOffset;
- uint32_t Sample15XOffset;
- uint32_t Sample15YOffset;
- uint32_t Sample14XOffset;
- uint32_t Sample14YOffset;
- uint32_t Sample13XOffset;
- uint32_t Sample13YOffset;
- uint32_t Sample12XOffset;
- uint32_t Sample12YOffset;
+ float Sample3XOffset;
+ float Sample3YOffset;
+ float Sample2XOffset;
+ float Sample2YOffset;
+ float Sample1XOffset;
+ float Sample1YOffset;
+ float Sample0XOffset;
+ float Sample0YOffset;
+ float Sample7XOffset;
+ float Sample7YOffset;
+ float Sample6XOffset;
+ float Sample6YOffset;
+ float Sample5XOffset;
+ float Sample5YOffset;
+ float Sample4XOffset;
+ float Sample4YOffset;
+ float Sample11XOffset;
+ float Sample11YOffset;
+ float Sample10XOffset;
+ float Sample10YOffset;
+ float Sample9XOffset;
+ float Sample9YOffset;
+ float Sample8XOffset;
+ float Sample8YOffset;
+ float Sample15XOffset;
+ float Sample15YOffset;
+ float Sample14XOffset;
+ float Sample14YOffset;
+ float Sample13XOffset;
+ float Sample13YOffset;
+ float Sample12XOffset;
+ float Sample12YOffset;
};
static inline void
0;
dw[2] =
- __gen_field(values->Sample3XOffset, 28, 31) |
- __gen_field(values->Sample3YOffset, 24, 27) |
- __gen_field(values->Sample2XOffset, 20, 23) |
- __gen_field(values->Sample2YOffset, 16, 19) |
- __gen_field(values->Sample1XOffset, 12, 15) |
- __gen_field(values->Sample1YOffset, 8, 11) |
- __gen_field(values->Sample0XOffset, 4, 7) |
- __gen_field(values->Sample0YOffset, 0, 3) |
+ __gen_field(values->Sample3XOffset * (1 << 4), 28, 31) |
+ __gen_field(values->Sample3YOffset * (1 << 4), 24, 27) |
+ __gen_field(values->Sample2XOffset * (1 << 4), 20, 23) |
+ __gen_field(values->Sample2YOffset * (1 << 4), 16, 19) |
+ __gen_field(values->Sample1XOffset * (1 << 4), 12, 15) |
+ __gen_field(values->Sample1YOffset * (1 << 4), 8, 11) |
+ __gen_field(values->Sample0XOffset * (1 << 4), 4, 7) |
+ __gen_field(values->Sample0YOffset * (1 << 4), 0, 3) |
0;
dw[3] =
- __gen_field(values->Sample7XOffset, 28, 31) |
- __gen_field(values->Sample7YOffset, 24, 27) |
- __gen_field(values->Sample6XOffset, 20, 23) |
- __gen_field(values->Sample6YOffset, 16, 19) |
- __gen_field(values->Sample5XOffset, 12, 15) |
- __gen_field(values->Sample5YOffset, 8, 11) |
- __gen_field(values->Sample4XOffset, 4, 7) |
- __gen_field(values->Sample4YOffset, 0, 3) |
+ __gen_field(values->Sample7XOffset * (1 << 4), 28, 31) |
+ __gen_field(values->Sample7YOffset * (1 << 4), 24, 27) |
+ __gen_field(values->Sample6XOffset * (1 << 4), 20, 23) |
+ __gen_field(values->Sample6YOffset * (1 << 4), 16, 19) |
+ __gen_field(values->Sample5XOffset * (1 << 4), 12, 15) |
+ __gen_field(values->Sample5YOffset * (1 << 4), 8, 11) |
+ __gen_field(values->Sample4XOffset * (1 << 4), 4, 7) |
+ __gen_field(values->Sample4YOffset * (1 << 4), 0, 3) |
0;
dw[4] =
- __gen_field(values->Sample11XOffset, 28, 31) |
- __gen_field(values->Sample11YOffset, 24, 27) |
- __gen_field(values->Sample10XOffset, 20, 23) |
- __gen_field(values->Sample10YOffset, 16, 19) |
- __gen_field(values->Sample9XOffset, 12, 15) |
- __gen_field(values->Sample9YOffset, 8, 11) |
- __gen_field(values->Sample8XOffset, 4, 7) |
- __gen_field(values->Sample8YOffset, 0, 3) |
+ __gen_field(values->Sample11XOffset * (1 << 4), 28, 31) |
+ __gen_field(values->Sample11YOffset * (1 << 4), 24, 27) |
+ __gen_field(values->Sample10XOffset * (1 << 4), 20, 23) |
+ __gen_field(values->Sample10YOffset * (1 << 4), 16, 19) |
+ __gen_field(values->Sample9XOffset * (1 << 4), 12, 15) |
+ __gen_field(values->Sample9YOffset * (1 << 4), 8, 11) |
+ __gen_field(values->Sample8XOffset * (1 << 4), 4, 7) |
+ __gen_field(values->Sample8YOffset * (1 << 4), 0, 3) |
0;
dw[5] =
- __gen_field(values->Sample15XOffset, 28, 31) |
- __gen_field(values->Sample15YOffset, 24, 27) |
- __gen_field(values->Sample14XOffset, 20, 23) |
- __gen_field(values->Sample14YOffset, 16, 19) |
- __gen_field(values->Sample13XOffset, 12, 15) |
- __gen_field(values->Sample13YOffset, 8, 11) |
- __gen_field(values->Sample12XOffset, 4, 7) |
- __gen_field(values->Sample12YOffset, 0, 3) |
+ __gen_field(values->Sample15XOffset * (1 << 4), 28, 31) |
+ __gen_field(values->Sample15YOffset * (1 << 4), 24, 27) |
+ __gen_field(values->Sample14XOffset * (1 << 4), 20, 23) |
+ __gen_field(values->Sample14YOffset * (1 << 4), 16, 19) |
+ __gen_field(values->Sample13XOffset * (1 << 4), 12, 15) |
+ __gen_field(values->Sample13YOffset * (1 << 4), 8, 11) |
+ __gen_field(values->Sample12XOffset * (1 << 4), 4, 7) |
+ __gen_field(values->Sample12YOffset * (1 << 4), 0, 3) |
0;
}
._3DCommandOpcode = 1, \
._3DCommandSubOpcode = 2
+struct GEN75_PALETTE_ENTRY {
+ uint32_t Alpha;
+ uint32_t Red;
+ uint32_t Green;
+ uint32_t Blue;
+};
+
+static inline void
+GEN75_PALETTE_ENTRY_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_PALETTE_ENTRY * restrict values)
+{
+ uint32_t *dw = (uint32_t * restrict) dst;
+
+ dw[0] =
+ __gen_field(values->Alpha, 24, 31) |
+ __gen_field(values->Red, 16, 23) |
+ __gen_field(values->Green, 8, 15) |
+ __gen_field(values->Blue, 0, 7) |
+ 0;
+
+}
+
struct GEN75_3DSTATE_SAMPLER_PALETTE_LOAD0 {
uint32_t CommandType;
uint32_t CommandSubType;
uint32_t DwordLength;
uint32_t AttributeSwizzleControlMode;
uint32_t NumberofSFOutputAttributes;
- uint32_t AttributeSwizzleEnable;
+ bool AttributeSwizzleEnable;
#define UPPERLEFT 0
#define LOWERLEFT 1
uint32_t PointSpriteTextureCoordinateOrigin;
uint32_t VertexURBEntryReadLength;
uint32_t VertexURBEntryReadOffset;
- uint32_t Attribute2n1ComponentOverrideW;
- uint32_t Attribute2n1ComponentOverrideZ;
- uint32_t Attribute2n1ComponentOverrideY;
- uint32_t Attribute2n1ComponentOverrideX;
+ bool Attribute2n1ComponentOverrideW;
+ bool Attribute2n1ComponentOverrideZ;
+ bool Attribute2n1ComponentOverrideY;
+ bool Attribute2n1ComponentOverrideX;
#define CONST_0000 0
#define CONST_0001_FLOAT 1
#define CONST_1111_FLOAT 2
#define INPUTATTR_FACING_W 3
uint32_t Attribute2n1SwizzleSelect;
uint32_t Attribute2n1SourceAttribute;
- uint32_t Attribute2nComponentOverrideW;
- uint32_t Attribute2nComponentOverrideZ;
- uint32_t Attribute2nComponentOverrideY;
- uint32_t Attribute2nComponentOverrideX;
+ bool Attribute2nComponentOverrideW;
+ bool Attribute2nComponentOverrideZ;
+ bool Attribute2nComponentOverrideY;
+ bool Attribute2nComponentOverrideX;
#define CONST_0000 0
#define CONST_0001_FLOAT 1
#define CONST_1111_FLOAT 2
#define D24_UNORM_X8_UINT 3
#define D16_UNORM 5
uint32_t DepthBufferSurfaceFormat;
- uint32_t LegacyGlobalDepthBiasEnable;
- uint32_t StatisticsEnable;
- uint32_t GlobalDepthOffsetEnableSolid;
- uint32_t GlobalDepthOffsetEnableWireframe;
- uint32_t GlobalDepthOffsetEnablePoint;
+ bool LegacyGlobalDepthBiasEnable;
+ bool StatisticsEnable;
+ bool GlobalDepthOffsetEnableSolid;
+ bool GlobalDepthOffsetEnableWireframe;
+ bool GlobalDepthOffsetEnablePoint;
#define RASTER_SOLID 0
#define RASTER_WIREFRAME 1
#define RASTER_POINT 2
#define RASTER_WIREFRAME 1
#define RASTER_POINT 2
uint32_t BackFaceFillMode;
- uint32_t ViewTransformEnable;
+ bool ViewTransformEnable;
uint32_t FrontWinding;
- uint32_t AntiAliasingEnable;
+ bool AntiAliasingEnable;
#define CULLMODE_BOTH 0
#define CULLMODE_NONE 1
#define CULLMODE_FRONT 2
#define CULLMODE_BACK 3
uint32_t CullMode;
- uint32_t LineWidth;
+ float LineWidth;
uint32_t LineEndCapAntialiasingRegionWidth;
- uint32_t LineStippleEnable;
- uint32_t ScissorRectangleEnable;
- uint32_t RTIndependentRasterizationEnable;
+ bool LineStippleEnable;
+ bool ScissorRectangleEnable;
+ bool RTIndependentRasterizationEnable;
uint32_t MultisampleRasterizationMode;
- uint32_t LastPixelEnable;
+ bool LastPixelEnable;
#define Vertex0 0
#define Vertex1 1
#define Vertex2 2
uint32_t AALineDistanceMode;
uint32_t VertexSubPixelPrecisionSelect;
uint32_t UsePointWidthState;
- uint32_t PointWidth;
+ float PointWidth;
uint32_t GlobalDepthOffsetConstant;
uint32_t GlobalDepthOffsetScale;
uint32_t GlobalDepthOffsetClamp;
dw[2] =
__gen_field(values->AntiAliasingEnable, 31, 31) |
__gen_field(values->CullMode, 29, 30) |
- __gen_field(values->LineWidth, 18, 27) |
+ __gen_field(values->LineWidth * (1 << 7), 18, 27) |
__gen_field(values->LineEndCapAntialiasingRegionWidth, 16, 17) |
__gen_field(values->LineStippleEnable, 14, 14) |
__gen_field(values->ScissorRectangleEnable, 11, 11) |
__gen_field(values->AALineDistanceMode, 14, 14) |
__gen_field(values->VertexSubPixelPrecisionSelect, 12, 12) |
__gen_field(values->UsePointWidthState, 11, 11) |
- __gen_field(values->PointWidth, 0, 10) |
+ __gen_field(values->PointWidth * (1 << 3), 0, 10) |
0;
dw[4] =
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
uint32_t SOBufferIndex;
- uint32_t SOBufferObjectControlState;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE SOBufferObjectControlState;
uint32_t SurfacePitch;
__gen_address_type SurfaceBaseAddress;
__gen_address_type SurfaceEndAddress;
__gen_field(values->DwordLength, 0, 7) |
0;
+ uint32_t dw_SOBufferObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SOBufferObjectControlState, &values->SOBufferObjectControlState);
dw[1] =
__gen_field(values->SOBufferIndex, 29, 30) |
- /* Struct SOBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_SOBufferObjectControlState, 25, 28) |
__gen_field(values->SurfacePitch, 0, 11) |
0;
._3DCommandOpcode = 1, \
._3DCommandSubOpcode = 23
+struct GEN75_SO_DECL {
+ uint32_t OutputBufferSlot;
+ uint32_t HoleFlag;
+ uint32_t RegisterIndex;
+ uint32_t ComponentMask;
+};
+
+static inline void
+GEN75_SO_DECL_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_SO_DECL * restrict values)
+{
+ uint32_t *dw = (uint32_t * restrict) dst;
+
+ dw[0] =
+ __gen_field(values->OutputBufferSlot, 12, 13) |
+ __gen_field(values->HoleFlag, 11, 11) |
+ __gen_field(values->RegisterIndex, 4, 9) |
+ __gen_field(values->ComponentMask, 0, 3) |
+ 0;
+
+}
+
+struct GEN75_SO_DECL_ENTRY {
+ struct GEN75_SO_DECL Stream3Decl;
+ struct GEN75_SO_DECL Stream2Decl;
+ struct GEN75_SO_DECL Stream1Decl;
+ struct GEN75_SO_DECL Stream0Decl;
+};
+
+static inline void
+GEN75_SO_DECL_ENTRY_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_SO_DECL_ENTRY * restrict values)
+{
+ uint32_t *dw = (uint32_t * restrict) dst;
+
+ uint32_t dw_Stream3Decl;
+ GEN75_SO_DECL_pack(data, &dw_Stream3Decl, &values->Stream3Decl);
+ uint32_t dw_Stream2Decl;
+ GEN75_SO_DECL_pack(data, &dw_Stream2Decl, &values->Stream2Decl);
+ uint32_t dw_Stream1Decl;
+ GEN75_SO_DECL_pack(data, &dw_Stream1Decl, &values->Stream1Decl);
+ uint32_t dw_Stream0Decl;
+ GEN75_SO_DECL_pack(data, &dw_Stream0Decl, &values->Stream0Decl);
+ uint64_t qw0 =
+ __gen_field(dw_Stream3Decl, 48, 63) |
+ __gen_field(dw_Stream2Decl, 32, 47) |
+ __gen_field(dw_Stream1Decl, 16, 31) |
+ __gen_field(dw_Stream0Decl, 0, 15) |
+ 0;
+
+ dw[0] = qw0;
+ dw[1] = qw0 >> 32;
+
+}
+
struct GEN75_3DSTATE_SO_DECL_LIST {
uint32_t CommandType;
uint32_t CommandSubType;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
uint32_t StencilBufferEnable;
- uint32_t StencilBufferObjectControlState;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE StencilBufferObjectControlState;
uint32_t SurfacePitch;
__gen_address_type SurfaceBaseAddress;
};
__gen_field(values->DwordLength, 0, 7) |
0;
+ uint32_t dw_StencilBufferObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_StencilBufferObjectControlState, &values->StencilBufferObjectControlState);
dw[1] =
__gen_field(values->StencilBufferEnable, 31, 31) |
- /* Struct StencilBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_StencilBufferObjectControlState, 25, 28) |
__gen_field(values->SurfacePitch, 0, 16) |
0;
#define LEADING 0
#define TRAILING 1
uint32_t ReorderMode;
- uint32_t SOStatisticsEnable;
+ bool SOStatisticsEnable;
uint32_t SOBufferEnable3;
uint32_t SOBufferEnable2;
uint32_t SOBufferEnable1;
#define EVEN_FRACTIONAL 2
uint32_t Partitioning;
#define POINT 0
-#define LINE 1
-#define TRI_CW 2
-#define TRI_CCW 3
+#define OUTPUT_LINE 1
+#define OUTPUT_TRI_CW 2
+#define OUTPUT_TRI_CCW 3
uint32_t OutputTopology;
#define QUAD 0
#define TRI 1
#define HW_TESS 0
#define SW_TESS 1
uint32_t TEMode;
- uint32_t TEEnable;
+ bool TEEnable;
float MaximumTessellationFactorOdd;
float MaximumTessellationFactorNotOdd;
};
._3DCommandOpcode = 0, \
._3DCommandSubOpcode = 8
+struct GEN75_VERTEX_BUFFER_STATE {
+ uint32_t VertexBufferIndex;
+#define VERTEXDATA 0
+#define INSTANCEDATA 1
+ uint32_t BufferAccessType;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE VertexBufferMemoryObjectControlState;
+ uint32_t AddressModifyEnable;
+ bool NullVertexBuffer;
+ uint32_t VertexFetchInvalidate;
+ uint32_t BufferPitch;
+ __gen_address_type BufferStartingAddress;
+ __gen_address_type EndAddress;
+ uint32_t InstanceDataStepRate;
+};
+
+static inline void
+GEN75_VERTEX_BUFFER_STATE_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_VERTEX_BUFFER_STATE * restrict values)
+{
+ uint32_t *dw = (uint32_t * restrict) dst;
+
+ uint32_t dw_VertexBufferMemoryObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_VertexBufferMemoryObjectControlState, &values->VertexBufferMemoryObjectControlState);
+ dw[0] =
+ __gen_field(values->VertexBufferIndex, 26, 31) |
+ __gen_field(values->BufferAccessType, 20, 20) |
+ __gen_field(dw_VertexBufferMemoryObjectControlState, 16, 19) |
+ __gen_field(values->AddressModifyEnable, 14, 14) |
+ __gen_field(values->NullVertexBuffer, 13, 13) |
+ __gen_field(values->VertexFetchInvalidate, 12, 12) |
+ __gen_field(values->BufferPitch, 0, 11) |
+ 0;
+
+ uint32_t dw1 =
+ 0;
+
+ dw[1] =
+ __gen_combine_address(data, &dw[1], values->BufferStartingAddress, dw1);
+
+ uint32_t dw2 =
+ 0;
+
+ dw[2] =
+ __gen_combine_address(data, &dw[2], values->EndAddress, dw2);
+
+ dw[3] =
+ __gen_field(values->InstanceDataStepRate, 0, 31) |
+ 0;
+
+}
+
struct GEN75_3DSTATE_VERTEX_BUFFERS {
uint32_t CommandType;
uint32_t CommandSubType;
._3DCommandOpcode = 0, \
._3DCommandSubOpcode = 9
+struct GEN75_VERTEX_ELEMENT_STATE {
+ uint32_t VertexBufferIndex;
+ bool Valid;
+ uint32_t SourceElementFormat;
+ bool EdgeFlagEnable;
+ uint32_t SourceElementOffset;
+ uint32_t Component0Control;
+ uint32_t Component1Control;
+ uint32_t Component2Control;
+ uint32_t Component3Control;
+};
+
+static inline void
+GEN75_VERTEX_ELEMENT_STATE_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_VERTEX_ELEMENT_STATE * restrict values)
+{
+ uint32_t *dw = (uint32_t * restrict) dst;
+
+ dw[0] =
+ __gen_field(values->VertexBufferIndex, 26, 31) |
+ __gen_field(values->Valid, 25, 25) |
+ __gen_field(values->SourceElementFormat, 16, 24) |
+ __gen_field(values->EdgeFlagEnable, 15, 15) |
+ __gen_field(values->SourceElementOffset, 0, 11) |
+ 0;
+
+ dw[1] =
+ __gen_field(values->Component0Control, 28, 30) |
+ __gen_field(values->Component1Control, 24, 26) |
+ __gen_field(values->Component2Control, 20, 22) |
+ __gen_field(values->Component3Control, 16, 18) |
+ 0;
+
+}
+
struct GEN75_3DSTATE_VERTEX_ELEMENTS {
uint32_t CommandType;
uint32_t CommandSubType;
uint32_t CommandSubType;
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
- uint32_t IndexedDrawCutIndexEnable;
+ bool IndexedDrawCutIndexEnable;
uint32_t DwordLength;
uint32_t CutIndex;
};
uint32_t CommandSubType;
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
- uint32_t StatisticsEnable;
+ bool StatisticsEnable;
};
static inline void
#define IEEE754 0
#define Alternate 1
uint32_t FloatingPointMode;
- uint32_t IllegalOpcodeExceptionEnable;
- uint32_t VSaccessesUAV;
- uint32_t SoftwareExceptionEnable;
+ bool IllegalOpcodeExceptionEnable;
+ bool VSaccessesUAV;
+ bool SoftwareExceptionEnable;
uint32_t ScratchSpaceBaseOffset;
uint32_t PerThreadScratchSpace;
uint32_t DispatchGRFStartRegisterforURBData;
uint32_t VertexURBEntryReadLength;
uint32_t VertexURBEntryReadOffset;
uint32_t MaximumNumberofThreads;
- uint32_t StatisticsEnable;
- uint32_t VertexCacheDisable;
- uint32_t VSFunctionEnable;
+ bool StatisticsEnable;
+ bool VertexCacheDisable;
+ bool VSFunctionEnable;
};
static inline void
uint32_t _3DCommandOpcode;
uint32_t _3DCommandSubOpcode;
uint32_t DwordLength;
- uint32_t StatisticsEnable;
- uint32_t DepthBufferClear;
- uint32_t ThreadDispatchEnable;
- uint32_t DepthBufferResolveEnable;
- uint32_t HierarchicalDepthBufferResolveEnable;
- uint32_t LegacyDiamondLineRasterization;
- uint32_t PixelShaderKillPixel;
+ bool StatisticsEnable;
+ bool DepthBufferClear;
+ bool ThreadDispatchEnable;
+ bool DepthBufferResolveEnable;
+ bool HierarchicalDepthBufferResolveEnable;
+ bool LegacyDiamondLineRasterization;
+ bool PixelShaderKillPixel;
#define PSCDEPTH_OFF 0
#define PSCDEPTH_ON 1
#define PSCDEPTH_ON_GE 2
#define EDSC_PSEXEC 1
#define EDSC_PREPS 2
uint32_t EarlyDepthStencilControl;
- uint32_t PixelShaderUsesSourceDepth;
- uint32_t PixelShaderUsesSourceW;
+ bool PixelShaderUsesSourceDepth;
+ bool PixelShaderUsesSourceW;
#define INTERP_PIXEL 0
#define INTERP_CENTROID 2
#define INTERP_SAMPLE 3
uint32_t PositionZWInterpolationMode;
uint32_t BarycentricInterpolationMode;
- uint32_t PixelShaderUsesInputCoverageMask;
+ bool PixelShaderUsesInputCoverageMask;
uint32_t LineEndCapAntialiasingRegionWidth;
uint32_t LineAntialiasingRegionWidth;
- uint32_t RTIndependentRasterizationEnable;
- uint32_t PolygonStippleEnable;
- uint32_t LineStippleEnable;
+ bool RTIndependentRasterizationEnable;
+ bool PolygonStippleEnable;
+ bool LineStippleEnable;
#define RASTRULE_UPPER_LEFT 0
#define RASTRULE_UPPER_RIGHT 1
uint32_t PointRasterizationRule;
uint32_t Pipeline;
uint32_t MediaCommandOpcode;
uint32_t SubOpcode;
- uint32_t PredicateEnable;
+ bool PredicateEnable;
uint32_t DwordLength;
uint32_t SharedLocalMemoryFixedOffset;
uint32_t InterfaceDescriptorOffset;
uint32_t Pipeline;
uint32_t MediaCommandOpcode;
uint32_t SubOpcodeA;
- uint32_t IndirectParameterEnable;
- uint32_t PredicateEnable;
+ bool IndirectParameterEnable;
+ bool PredicateEnable;
uint32_t DwordLength;
uint32_t InterfaceDescriptorOffset;
#define SIMD8 0
uint32_t MediaCommandSubOpcode;
uint32_t DwordLength;
uint32_t InterfaceDescriptorOffset;
- uint32_t ChildrenPresent;
+ bool ChildrenPresent;
#define Nothreadsynchronization 0
#define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
uint32_t ThreadSynchronization;
uint32_t ScoredboardY;
uint32_t ScoreboardX;
uint32_t ScoreboardColor;
- uint32_t ScoreboardMask;
+ bool ScoreboardMask;
/* variable length fields follow */
};
uint32_t SubOpcode;
uint32_t DwordLength;
uint32_t InterfaceDescriptorOffset;
- uint32_t ChildrenPresent;
- uint32_t PRT_FenceNeeded;
+ bool ChildrenPresent;
+ bool PRT_FenceNeeded;
#define Rootthreadqueue 0
#define VFEstateflush 1
uint32_t PRT_FenceType;
uint32_t SubOpcode;
uint32_t DwordLength;
uint32_t InterfaceDescriptorOffset;
- uint32_t ChildrenPresent;
+ bool ChildrenPresent;
#define Nothreadsynchronization 0
#define Threaddispatchissynchronizedbythespawnrootthreadmessage 1
uint32_t ThreadSynchronization;
uint32_t UseScoreboard;
uint32_t IndirectDataLength;
uint32_t IndirectDataStartAddress;
- uint32_t ScoreboardMask;
- uint32_t DualMode;
- uint32_t Repel;
- uint32_t QuadMode;
+ bool ScoreboardMask;
+ bool DualMode;
+ bool Repel;
+ bool QuadMode;
uint32_t ColorCountMinusOne;
uint32_t MiddleLoopExtraSteps;
uint32_t LocalMidLoopUnitY;
uint32_t MediaCommandOpcode;
uint32_t SubOpcode;
uint32_t DwordLength;
- uint32_t DisablePreemption;
- uint32_t FlushtoGO;
+ bool DisablePreemption;
+ bool FlushtoGO;
uint32_t WatermarkRequired;
uint32_t InterfaceDescriptorOffset;
};
struct GEN75_MI_ARB_ON_OFF {
uint32_t CommandType;
uint32_t MICommandOpcode;
- uint32_t ArbitrationEnable;
+ bool ArbitrationEnable;
};
static inline void
#define _1stlevelbatch 0
#define _2ndlevelbatch 1
uint32_t _2ndLevelBatchBuffer;
- uint32_t AddOffsetEnable;
- uint32_t PredicationEnable;
+ bool AddOffsetEnable;
+ bool PredicationEnable;
uint32_t NonPrivileged;
- uint32_t ClearCommandBufferEnable;
- uint32_t ResourceStreamerEnable;
+ bool ClearCommandBufferEnable;
+ bool ResourceStreamerEnable;
#define ASI_GGTT 0
#define ASI_PPGTT 1
uint32_t AddressSpaceIndicator;
struct GEN75_MI_FLUSH {
uint32_t CommandType;
uint32_t MICommandOpcode;
- uint32_t IndirectStatePointersDisable;
- uint32_t GenericMediaStateClear;
+ bool IndirectStatePointersDisable;
+ bool GenericMediaStateClear;
#define DontReset 0
#define Reset 1
- uint32_t GlobalSnapshotCountReset;
+ bool GlobalSnapshotCountReset;
#define Flush 0
#define DontFlush 1
- uint32_t RenderCacheFlushInhibit;
+ bool RenderCacheFlushInhibit;
#define DontInvalidate 0
#define Invalidate 1
- uint32_t StateInstructionCacheInvalidate;
+ bool StateInstructionCacheInvalidate;
};
static inline void
struct GEN75_MI_LOAD_REGISTER_MEM {
uint32_t CommandType;
uint32_t MICommandOpcode;
- uint32_t UseGlobalGTT;
+ bool UseGlobalGTT;
uint32_t AsyncModeEnable;
uint32_t DwordLength;
uint32_t RegisterAddress;
struct GEN75_MI_NOOP {
uint32_t CommandType;
uint32_t MICommandOpcode;
- uint32_t IdentificationNumberRegisterWriteEnable;
+ bool IdentificationNumberRegisterWriteEnable;
uint32_t IdentificationNumber;
};
struct GEN75_MI_PREDICATE {
uint32_t CommandType;
uint32_t MICommandOpcode;
-#define KEEP 0
-#define LOAD 2
-#define LOADINV 3
+#define LOAD_KEEP 0
+#define LOAD_LOAD 2
+#define LOAD_LOADINV 3
uint32_t LoadOperation;
#define COMBINE_SET 0
#define COMBINE_AND 1
struct GEN75_MI_RS_CONTEXT {
uint32_t CommandType;
uint32_t MICommandOpcode;
-#define Restore 0
-#define Save 1
+#define RS_RESTORE 0
+#define RS_SAVE 1
uint32_t ResourceStreamerSave;
};
struct GEN75_MI_RS_CONTROL {
uint32_t CommandType;
uint32_t MICommandOpcode;
-#define Stop 0
-#define Start 1
+#define RS_STOP 0
+#define RS_START 1
uint32_t ResourceStreamerControl;
};
uint32_t DwordLength;
__gen_address_type LogicalContextAddress;
uint32_t ReservedMustbe1;
- uint32_t CoreModeEnable;
- uint32_t ResourceStreamerStateSaveEnable;
- uint32_t ResourceStreamerStateRestoreEnable;
+ bool CoreModeEnable;
+ bool ResourceStreamerStateSaveEnable;
+ bool ResourceStreamerStateRestoreEnable;
uint32_t ForceRestore;
uint32_t RestoreInhibit;
};
#define PredicateonClear 1
#define PredicateonSet 2
#define PredicateDisable 3
- uint32_t PREDICATEENABLE;
+ bool PREDICATEENABLE;
};
static inline void
struct GEN75_MI_STORE_DATA_IMM {
uint32_t CommandType;
uint32_t MICommandOpcode;
- uint32_t UseGlobalGTT;
+ bool UseGlobalGTT;
uint32_t DwordLength;
uint32_t Address;
uint32_t CoreModeEnable;
struct GEN75_MI_SUSPEND_FLUSH {
uint32_t CommandType;
uint32_t MICommandOpcode;
- uint32_t SuspendFlush;
+ bool SuspendFlush;
};
static inline void
struct GEN75_MI_WAIT_FOR_EVENT {
uint32_t CommandType;
uint32_t MICommandOpcode;
- uint32_t DisplayPipeCHorizontalBlankWaitEnable;
- uint32_t DisplayPipeCVerticalBlankWaitEnable;
- uint32_t DisplaySpriteCFlipPendingWaitEnable;
+ bool DisplayPipeCHorizontalBlankWaitEnable;
+ bool DisplayPipeCVerticalBlankWaitEnable;
+ bool DisplaySpriteCFlipPendingWaitEnable;
#define Notenabled 0
uint32_t ConditionCodeWaitSelect;
- uint32_t DisplayPlaneCFlipPendingWaitEnable;
- uint32_t DisplayPipeCScanLineWaitEnable;
- uint32_t DisplayPipeBHorizontalBlankWaitEnable;
- uint32_t DisplayPipeBVerticalBlankWaitEnable;
- uint32_t DisplaySpriteBFlipPendingWaitEnable;
- uint32_t DisplayPlaneBFlipPendingWaitEnable;
- uint32_t DisplayPipeBScanLineWaitEnable;
- uint32_t DisplayPipeAHorizontalBlankWaitEnable;
- uint32_t DisplayPipeAVerticalBlankWaitEnable;
- uint32_t DisplaySpriteAFlipPendingWaitEnable;
- uint32_t DisplayPlaneAFlipPendingWaitEnable;
- uint32_t DisplayPipeAScanLineWaitEnable;
+ bool DisplayPlaneCFlipPendingWaitEnable;
+ bool DisplayPipeCScanLineWaitEnable;
+ bool DisplayPipeBHorizontalBlankWaitEnable;
+ bool DisplayPipeBVerticalBlankWaitEnable;
+ bool DisplaySpriteBFlipPendingWaitEnable;
+ bool DisplayPlaneBFlipPendingWaitEnable;
+ bool DisplayPipeBScanLineWaitEnable;
+ bool DisplayPipeAHorizontalBlankWaitEnable;
+ bool DisplayPipeAVerticalBlankWaitEnable;
+ bool DisplaySpriteAFlipPendingWaitEnable;
+ bool DisplayPlaneAFlipPendingWaitEnable;
+ bool DisplayPipeAScanLineWaitEnable;
};
static inline void
#define Reset 1
uint32_t GlobalSnapshotCountReset;
uint32_t TLBInvalidate;
- uint32_t GenericMediaStateClear;
+ bool GenericMediaStateClear;
#define NoWrite 0
#define WriteImmediateData 1
#define WritePSDepthCount 2
#define WriteTimestamp 3
uint32_t PostSyncOperation;
- uint32_t DepthStallEnable;
+ bool DepthStallEnable;
#define DisableFlush 0
#define EnableFlush 1
- uint32_t RenderTargetCacheFlushEnable;
- uint32_t InstructionCacheInvalidateEnable;
- uint32_t TextureCacheInvalidationEnable;
- uint32_t IndirectStatePointersDisable;
- uint32_t NotifyEnable;
- uint32_t PipeControlFlushEnable;
- uint32_t DCFlushEnable;
- uint32_t VFCacheInvalidationEnable;
- uint32_t ConstantCacheInvalidationEnable;
- uint32_t StateCacheInvalidationEnable;
- uint32_t StallAtPixelScoreboard;
+ bool RenderTargetCacheFlushEnable;
+ bool InstructionCacheInvalidateEnable;
+ bool TextureCacheInvalidationEnable;
+ bool IndirectStatePointersDisable;
+ bool NotifyEnable;
+ bool PipeControlFlushEnable;
+ bool DCFlushEnable;
+ bool VFCacheInvalidationEnable;
+ bool ConstantCacheInvalidationEnable;
+ bool StateCacheInvalidationEnable;
+ bool StallAtPixelScoreboard;
#define FlushDisabled 0
#define FlushEnabled 1
- uint32_t DepthCacheFlushEnable;
+ bool DepthCacheFlushEnable;
__gen_address_type Address;
uint32_t ImmediateData;
uint32_t ImmediateData0;
}
-struct GEN75_3DSTATE_CONSTANT_BODY {
- uint32_t ConstantBuffer1ReadLength;
- uint32_t ConstantBuffer0ReadLength;
- uint32_t ConstantBuffer3ReadLength;
- uint32_t ConstantBuffer2ReadLength;
- __gen_address_type PointerToConstantBuffer0;
- uint32_t ConstantBufferObjectControlState;
- __gen_address_type PointerToConstantBuffer1;
- __gen_address_type PointerToConstantBuffer2;
- __gen_address_type PointerToConstantBuffer3;
-};
-
-static inline void
-GEN75_3DSTATE_CONSTANT_BODY_pack(__gen_user_data *data, void * restrict dst,
- const struct GEN75_3DSTATE_CONSTANT_BODY * restrict values)
-{
- uint32_t *dw = (uint32_t * restrict) dst;
-
- dw[0] =
- __gen_field(values->ConstantBuffer1ReadLength, 16, 31) |
- __gen_field(values->ConstantBuffer0ReadLength, 0, 15) |
- 0;
-
- dw[1] =
- __gen_field(values->ConstantBuffer3ReadLength, 16, 31) |
- __gen_field(values->ConstantBuffer2ReadLength, 0, 15) |
- 0;
-
- uint32_t dw2 =
- /* Struct ConstantBufferObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
- 0;
-
- dw[2] =
- __gen_combine_address(data, &dw[2], values->PointerToConstantBuffer0, dw2);
-
- uint32_t dw3 =
- 0;
-
- dw[3] =
- __gen_combine_address(data, &dw[3], values->PointerToConstantBuffer1, dw3);
-
- uint32_t dw4 =
- 0;
-
- dw[4] =
- __gen_combine_address(data, &dw[4], values->PointerToConstantBuffer2, dw4);
-
- uint32_t dw5 =
- 0;
-
- dw[5] =
- __gen_combine_address(data, &dw[5], values->PointerToConstantBuffer3, dw5);
-
-}
-
-struct GEN75_BINDING_TABLE_EDIT_ENTRY {
- uint32_t BindingTableIndex;
- uint32_t SurfaceStatePointer;
-};
-
-static inline void
-GEN75_BINDING_TABLE_EDIT_ENTRY_pack(__gen_user_data *data, void * restrict dst,
- const struct GEN75_BINDING_TABLE_EDIT_ENTRY * restrict values)
-{
- uint32_t *dw = (uint32_t * restrict) dst;
-
- dw[0] =
- __gen_field(values->BindingTableIndex, 16, 23) |
- __gen_offset(values->SurfaceStatePointer, 0, 15) |
- 0;
-
-}
-
-struct GEN75_GATHER_CONSTANT_ENTRY {
- uint32_t ConstantBufferOffset;
- uint32_t ChannelMask;
- uint32_t BindingTableIndexOffset;
-};
-
-static inline void
-GEN75_GATHER_CONSTANT_ENTRY_pack(__gen_user_data *data, void * restrict dst,
- const struct GEN75_GATHER_CONSTANT_ENTRY * restrict values)
-{
- uint32_t *dw = (uint32_t * restrict) dst;
-
- dw[0] =
- __gen_offset(values->ConstantBufferOffset, 8, 15) |
- __gen_field(values->ChannelMask, 4, 7) |
- __gen_field(values->BindingTableIndexOffset, 0, 3) |
- 0;
-
-}
-
-struct GEN75_VERTEX_BUFFER_STATE {
- uint32_t VertexBufferIndex;
-#define VERTEXDATA 0
-#define INSTANCEDATA 1
- uint32_t BufferAccessType;
- uint32_t VertexBufferMemoryObjectControlState;
- uint32_t AddressModifyEnable;
- uint32_t NullVertexBuffer;
- uint32_t VertexFetchInvalidate;
- uint32_t BufferPitch;
- __gen_address_type BufferStartingAddress;
- __gen_address_type EndAddress;
- uint32_t InstanceDataStepRate;
-};
-
-static inline void
-GEN75_VERTEX_BUFFER_STATE_pack(__gen_user_data *data, void * restrict dst,
- const struct GEN75_VERTEX_BUFFER_STATE * restrict values)
-{
- uint32_t *dw = (uint32_t * restrict) dst;
-
- dw[0] =
- __gen_field(values->VertexBufferIndex, 26, 31) |
- __gen_field(values->BufferAccessType, 20, 20) |
- /* Struct VertexBufferMemoryObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
- __gen_field(values->AddressModifyEnable, 14, 14) |
- __gen_field(values->NullVertexBuffer, 13, 13) |
- __gen_field(values->VertexFetchInvalidate, 12, 12) |
- __gen_field(values->BufferPitch, 0, 11) |
- 0;
-
- uint32_t dw1 =
- 0;
-
- dw[1] =
- __gen_combine_address(data, &dw[1], values->BufferStartingAddress, dw1);
-
- uint32_t dw2 =
- 0;
-
- dw[2] =
- __gen_combine_address(data, &dw[2], values->EndAddress, dw2);
-
- dw[3] =
- __gen_field(values->InstanceDataStepRate, 0, 31) |
- 0;
-
-}
-
-struct GEN75_VERTEX_ELEMENT_STATE {
- uint32_t VertexBufferIndex;
- uint32_t Valid;
- uint32_t SourceElementFormat;
- uint32_t EdgeFlagEnable;
- uint32_t SourceElementOffset;
- uint32_t Component0Control;
- uint32_t Component1Control;
- uint32_t Component2Control;
- uint32_t Component3Control;
-};
-
-static inline void
-GEN75_VERTEX_ELEMENT_STATE_pack(__gen_user_data *data, void * restrict dst,
- const struct GEN75_VERTEX_ELEMENT_STATE * restrict values)
-{
- uint32_t *dw = (uint32_t * restrict) dst;
-
- dw[0] =
- __gen_field(values->VertexBufferIndex, 26, 31) |
- __gen_field(values->Valid, 25, 25) |
- __gen_field(values->SourceElementFormat, 16, 24) |
- __gen_field(values->EdgeFlagEnable, 15, 15) |
- __gen_field(values->SourceElementOffset, 0, 11) |
- 0;
-
- dw[1] =
- __gen_field(values->Component0Control, 28, 30) |
- __gen_field(values->Component1Control, 24, 26) |
- __gen_field(values->Component2Control, 20, 22) |
- __gen_field(values->Component3Control, 16, 18) |
- 0;
-
-}
-
-struct GEN75_SO_DECL_ENTRY {
- uint32_t Stream3Decl;
- uint32_t Stream2Decl;
- uint32_t Stream1Decl;
- uint32_t Stream0Decl;
-};
+#define GEN75_3DSTATE_CONSTANT_BODY_length 0x00000006
-static inline void
-GEN75_SO_DECL_ENTRY_pack(__gen_user_data *data, void * restrict dst,
- const struct GEN75_SO_DECL_ENTRY * restrict values)
-{
- uint32_t *dw = (uint32_t * restrict) dst;
+#define GEN75_BINDING_TABLE_EDIT_ENTRY_length 0x00000001
- dw[0] =
- /* Struct Stream3Decl: found SO_DECL */
- /* Struct Stream2Decl: found SO_DECL */
- /* Struct Stream1Decl: found SO_DECL */
- /* Struct Stream0Decl: found SO_DECL */
- 0;
+#define GEN75_GATHER_CONSTANT_ENTRY_length 0x00000001
-}
+#define GEN75_VERTEX_BUFFER_STATE_length 0x00000004
-struct GEN75_SO_DECL {
- uint32_t OutputBufferSlot;
- uint32_t HoleFlag;
- uint32_t RegisterIndex;
- uint32_t ComponentMask;
-};
+#define GEN75_VERTEX_ELEMENT_STATE_length 0x00000002
-static inline void
-GEN75_SO_DECL_pack(__gen_user_data *data, void * restrict dst,
- const struct GEN75_SO_DECL * restrict values)
-{
- uint32_t *dw = (uint32_t * restrict) dst;
+#define GEN75_SO_DECL_ENTRY_length 0x00000002
- dw[0] =
- __gen_field(values->OutputBufferSlot, 12, 13) |
- __gen_field(values->HoleFlag, 11, 11) |
- __gen_field(values->RegisterIndex, 4, 9) |
- __gen_field(values->ComponentMask, 0, 3) |
- 0;
+#define GEN75_SO_DECL_length 0x00000001
-}
+#define GEN75_SCISSOR_RECT_length 0x00000002
struct GEN75_SCISSOR_RECT {
uint32_t ScissorRectangleYMin;
}
+#define GEN75_SF_CLIP_VIEWPORT_length 0x00000010
+
struct GEN75_SF_CLIP_VIEWPORT {
float ViewportMatrixElementm00;
float ViewportMatrixElementm11;
}
+#define GEN75_BLEND_STATE_length 0x00000002
+
struct GEN75_BLEND_STATE {
- uint32_t ColorBufferBlendEnable;
- uint32_t IndependentAlphaBlendEnable;
+ bool ColorBufferBlendEnable;
+ bool IndependentAlphaBlendEnable;
#define BLENDFUNCTION_ADD 0
#define BLENDFUNCTION_SUBTRACT 1
#define BLENDFUNCTION_REVERSE_SUBTRACT 2
uint32_t ColorBlendFunction;
uint32_t SourceBlendFactor;
uint32_t DestinationBlendFactor;
- uint32_t AlphaToCoverageEnable;
- uint32_t AlphaToOneEnable;
- uint32_t AlphaToCoverageDitherEnable;
- uint32_t WriteDisableAlpha;
- uint32_t WriteDisableRed;
- uint32_t WriteDisableGreen;
- uint32_t WriteDisableBlue;
- uint32_t LogicOpEnable;
+ bool AlphaToCoverageEnable;
+ bool AlphaToOneEnable;
+ bool AlphaToCoverageDitherEnable;
+ bool WriteDisableAlpha;
+ bool WriteDisableRed;
+ bool WriteDisableGreen;
+ bool WriteDisableBlue;
+ bool LogicOpEnable;
#define LOGICOP_CLEAR 0
#define LOGICOP_NOR 1
#define LOGICOP_AND_INVERTED 2
#define LOGICOP_OR 14
#define LOGICOP_SET 15
uint32_t LogicOpFunction;
- uint32_t AlphaTestEnable;
+ bool AlphaTestEnable;
#define COMPAREFUNCTION_ALWAYS 0
#define COMPAREFUNCTION_NEVER 1
#define COMPAREFUNCTION_LESS 2
#define COMPAREFUNCTION_NOTEQUAL 6
#define COMPAREFUNCTION_GEQUAL 7
uint32_t AlphaTestFunction;
- uint32_t ColorDitherEnable;
+ bool ColorDitherEnable;
uint32_t XDitherOffset;
uint32_t YDitherOffset;
#define COLORCLAMP_UNORM 0
#define COLORCLAMP_SNORM 1
#define COLORCLAMP_RTFORMAT 2
uint32_t ColorClampRange;
- uint32_t PreBlendColorClampEnable;
- uint32_t PostBlendColorClampEnable;
+ bool PreBlendColorClampEnable;
+ bool PostBlendColorClampEnable;
};
static inline void
}
+#define GEN75_CC_VIEWPORT_length 0x00000002
+
struct GEN75_CC_VIEWPORT {
float MinimumDepth;
float MaximumDepth;
}
+#define GEN75_COLOR_CALC_STATE_length 0x00000006
+
struct GEN75_COLOR_CALC_STATE {
uint32_t StencilReferenceValue;
uint32_t BackFaceStencilReferenceValue;
}
+#define GEN75_DEPTH_STENCIL_STATE_length 0x00000003
+
struct GEN75_DEPTH_STENCIL_STATE {
- uint32_t StencilTestEnable;
+ bool StencilTestEnable;
#define COMPAREFUNCTION_ALWAYS 0
#define COMPAREFUNCTION_NEVER 1
#define COMPAREFUNCTION_LESS 2
uint32_t StencilFailOp;
uint32_t StencilPassDepthFailOp;
uint32_t StencilPassDepthPassOp;
- uint32_t StencilBufferWriteEnable;
- uint32_t DoubleSidedStencilEnable;
+ bool StencilBufferWriteEnable;
+ bool DoubleSidedStencilEnable;
#define COMPAREFUNCTION_ALWAYS 0
#define COMPAREFUNCTION_NEVER 1
#define COMPAREFUNCTION_LESS 2
uint32_t StencilWriteMask;
uint32_t BackfaceStencilTestMask;
uint32_t BackfaceStencilWriteMask;
- uint32_t DepthTestEnable;
+ bool DepthTestEnable;
#define COMPAREFUNCTION_ALWAYS 0
#define COMPAREFUNCTION_NEVER 1
#define COMPAREFUNCTION_LESS 2
#define COMPAREFUNCTION_NOTEQUAL 6
#define COMPAREFUNCTION_GEQUAL 7
uint32_t DepthTestFunction;
- uint32_t DepthBufferWriteEnable;
+ bool DepthBufferWriteEnable;
};
static inline void
}
-struct GEN75_MEMORY_OBJECT_CONTROL_STATE {
- uint32_t L3CacheabilityControlL3CC;
-};
-
-static inline void
-GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(__gen_user_data *data, void * restrict dst,
- const struct GEN75_MEMORY_OBJECT_CONTROL_STATE * restrict values)
-{
- uint32_t *dw = (uint32_t * restrict) dst;
-
- dw[0] =
- __gen_field(values->L3CacheabilityControlL3CC, 0, 0) |
- 0;
+#define GEN75_MEMORY_OBJECT_CONTROL_STATE_length 0x00000001
-}
+#define GEN75_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS_length 0x00000001
struct GEN75_VEB_DI_IECP_COMMAND_SURFACE_CONTROL_BITS {
#define Highestpriority 0
}
+#define GEN75_INTERFACE_DESCRIPTOR_DATA_length 0x00000008
+
struct GEN75_INTERFACE_DESCRIPTOR_DATA {
uint32_t KernelStartPointer;
#define Multiple 0
#define IEEE754 0
#define Alternate 1
uint32_t FloatingPointMode;
- uint32_t IllegalOpcodeExceptionEnable;
- uint32_t MaskStackExceptionEnable;
- uint32_t SoftwareExceptionEnable;
+ bool IllegalOpcodeExceptionEnable;
+ bool MaskStackExceptionEnable;
+ bool SoftwareExceptionEnable;
uint32_t SamplerStatePointer;
#define Nosamplersused 0
#define Between1and4samplersused 1
#define RD 2
#define RTZ 3
uint32_t RoundingMode;
- uint32_t BarrierEnable;
+ bool BarrierEnable;
uint32_t SharedLocalMemorySize;
uint32_t NumberofThreadsinGPGPUThreadGroup;
uint32_t CrossThreadConstantDataReadLength;
}
-struct GEN75_PALETTE_ENTRY {
- uint32_t Alpha;
- uint32_t Red;
- uint32_t Green;
- uint32_t Blue;
+#define GEN75_PALETTE_ENTRY_length 0x00000001
+
+#define GEN75_BINDING_TABLE_STATE_length 0x00000001
+
+struct GEN75_BINDING_TABLE_STATE {
+ uint32_t SurfaceStatePointer;
};
static inline void
-GEN75_PALETTE_ENTRY_pack(__gen_user_data *data, void * restrict dst,
- const struct GEN75_PALETTE_ENTRY * restrict values)
+GEN75_BINDING_TABLE_STATE_pack(__gen_user_data *data, void * restrict dst,
+ const struct GEN75_BINDING_TABLE_STATE * restrict values)
{
uint32_t *dw = (uint32_t * restrict) dst;
dw[0] =
- __gen_field(values->Alpha, 24, 31) |
- __gen_field(values->Red, 16, 23) |
- __gen_field(values->Green, 8, 15) |
- __gen_field(values->Blue, 0, 7) |
+ __gen_offset(values->SurfaceStatePointer, 5, 31) |
0;
}
+#define GEN75_RENDER_SURFACE_STATE_length 0x00000008
+
struct GEN75_RENDER_SURFACE_STATE {
#define SURFTYPE_1D 0
#define SURFTYPE_2D 1
#define SURFTYPE_STRBUF 5
#define SURFTYPE_NULL 7
uint32_t SurfaceType;
- uint32_t SurfaceArray;
+ bool SurfaceArray;
uint32_t SurfaceFormat;
uint32_t SurfaceVerticalAlignment;
#define HALIGN_4 0
uint32_t MinimumArrayElement0;
uint32_t XOffset;
uint32_t YOffset;
- uint32_t SurfaceObjectControlState;
+ struct GEN75_MEMORY_OBJECT_CONTROL_STATE SurfaceObjectControlState;
uint32_t SurfaceMinLOD;
uint32_t MIPCountLOD;
__gen_address_type MCSBaseAddress;
uint32_t MCSSurfacePitch;
__gen_address_type AppendCounterAddress;
- uint32_t AppendCounterEnable;
- uint32_t MCSEnable;
+ bool AppendCounterEnable;
+ bool MCSEnable;
uint32_t ReservedMBZ;
uint32_t XOffsetforUVPlane;
uint32_t YOffsetforUVPlane;
uint32_t ShaderChannelSelectG;
uint32_t ShaderChannelSelectB;
uint32_t ShaderChannelSelectA;
- uint32_t ResourceMinLOD;
+ float ResourceMinLOD;
};
static inline void
__gen_field(values->MinimumArrayElement, 0, 26) |
0;
+ uint32_t dw_SurfaceObjectControlState;
+ GEN75_MEMORY_OBJECT_CONTROL_STATE_pack(data, &dw_SurfaceObjectControlState, &values->SurfaceObjectControlState);
dw[5] =
__gen_offset(values->XOffset, 25, 31) |
__gen_offset(values->YOffset, 20, 23) |
- /* Struct SurfaceObjectControlState: found MEMORY_OBJECT_CONTROL_STATE */
+ __gen_field(dw_SurfaceObjectControlState, 16, 19) |
__gen_field(values->SurfaceMinLOD, 4, 7) |
__gen_field(values->MIPCountLOD, 0, 3) |
0;
__gen_field(values->ShaderChannelSelectG, 22, 24) |
__gen_field(values->ShaderChannelSelectB, 19, 21) |
__gen_field(values->ShaderChannelSelectA, 16, 18) |
- __gen_field(values->ResourceMinLOD, 0, 11) |
+ __gen_field(values->ResourceMinLOD * (1 << 8), 0, 11) |
0;
}
+#define GEN75_SAMPLER_BORDER_COLOR_STATE_length 0x00000014
+
struct GEN75_SAMPLER_BORDER_COLOR_STATE {
uint32_t BorderColorRedDX100GL;
uint32_t BorderColorAlpha;
uint32_t BorderColorGreen0;
uint32_t BorderColorBlue0;
uint32_t BorderColorAlpha0;
- uint32_t BorderColor;
- uint32_t BorderColor0;
- uint32_t BorderColor1;
+ uint64_t BorderColor;
+ uint64_t BorderColor0;
+ uint64_t BorderColor1;
};
static inline void
}
+#define GEN75_SAMPLER_STATE_length 0x00000004
+
struct GEN75_SAMPLER_STATE {
- uint32_t SamplerDisable;
+ bool SamplerDisable;
#define DX10OGL 0
#define DX9 1
uint32_t TextureBorderColorMode;
#define OGL 1
uint32_t LODPreClampEnable;
- uint32_t BaseMipLevel;
+ float BaseMipLevel;
#define MIPFILTER_NONE 0
#define MIPFILTER_NEAREST 1
#define MIPFILTER_LINEAR 3
#define LEGACY 0
#define EWAApproximation 1
uint32_t AnisotropicAlgorithm;
- uint32_t MinLOD;
- uint32_t MaxLOD;
+ float MinLOD;
+ float MaxLOD;
#define PREFILTEROPALWAYS 0
#define PREFILTEROPNEVER 1
#define PREFILTEROPLESS 2
#define OVERRIDE 1
uint32_t CubeSurfaceControlMode;
uint32_t BorderColorPointer;
- uint32_t ChromaKeyEnable;
+ bool ChromaKeyEnable;
uint32_t ChromaKeyIndex;
#define KEYFILTER_KILL_ON_ANY_MATCH 0
#define KEYFILTER_REPLACE_BLACK 1
#define RATIO141 6
#define RATIO161 7
uint32_t MaximumAnisotropy;
- uint32_t RAddressMinFilterRoundingEnable;
- uint32_t RAddressMagFilterRoundingEnable;
- uint32_t VAddressMinFilterRoundingEnable;
- uint32_t VAddressMagFilterRoundingEnable;
- uint32_t UAddressMinFilterRoundingEnable;
- uint32_t UAddressMagFilterRoundingEnable;
+ bool RAddressMinFilterRoundingEnable;
+ bool RAddressMagFilterRoundingEnable;
+ bool VAddressMinFilterRoundingEnable;
+ bool VAddressMagFilterRoundingEnable;
+ bool UAddressMinFilterRoundingEnable;
+ bool UAddressMagFilterRoundingEnable;
#define FULL 0
#define TRIQUAL_HIGHMAG_CLAMP_MIPFILTER 1
#define MED 2
#define LOW 3
uint32_t TrilinearFilterQuality;
- uint32_t NonnormalizedCoordinateEnable;
+ bool NonnormalizedCoordinateEnable;
uint32_t TCXAddressControlMode;
uint32_t TCYAddressControlMode;
uint32_t TCZAddressControlMode;
__gen_field(values->SamplerDisable, 31, 31) |
__gen_field(values->TextureBorderColorMode, 29, 29) |
__gen_field(values->LODPreClampEnable, 28, 28) |
- __gen_field(values->BaseMipLevel, 22, 26) |
+ __gen_field(values->BaseMipLevel * (1 << 1), 22, 26) |
__gen_field(values->MipModeFilter, 20, 21) |
__gen_field(values->MagModeFilter, 17, 19) |
__gen_field(values->MinModeFilter, 14, 16) |
0;
dw[1] =
- __gen_field(values->MinLOD, 20, 31) |
- __gen_field(values->MaxLOD, 8, 19) |
+ __gen_field(values->MinLOD * (1 << 8), 20, 31) |
+ __gen_field(values->MaxLOD * (1 << 8), 8, 19) |
__gen_field(values->ShadowFunction, 1, 3) |
__gen_field(values->CubeSurfaceControlMode, 0, 0) |
0;
#define _3DPRIM_QUADLIST 7
#define _3DPRIM_QUADSTRIP 8
#define _3DPRIM_LINELIST_ADJ 9
-#define _3DPRIM_LISTSTRIP_ADJ 10
+#define _3DPRIM_LINESTRIP_ADJ 10
#define _3DPRIM_TRILIST_ADJ 11
#define _3DPRIM_TRISTRIP_ADJ 12
#define _3DPRIM_TRISTRIP_REVERSE 13