[GPU] xenos.h: tessellation, memexport constant
This commit is contained in:
parent
eee4d91621
commit
486a5725e3
|
@ -43,6 +43,16 @@ enum class PrimitiveType : uint32_t {
|
||||||
k2DFillRectList = 0x14,
|
k2DFillRectList = 0x14,
|
||||||
k2DLineStrip = 0x15,
|
k2DLineStrip = 0x15,
|
||||||
k2DTriStrip = 0x16,
|
k2DTriStrip = 0x16,
|
||||||
|
// Tessellation patches (D3DTPT) - reusing 2DCopyRectList types.
|
||||||
|
kLinePatch = 0x10,
|
||||||
|
kTrianglePatch = 0x11,
|
||||||
|
kQuadPatch = 0x12,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class TessellationMode : uint32_t {
|
||||||
|
kDiscrete = 0,
|
||||||
|
kContinuous = 1,
|
||||||
|
kAdaptive = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class Dimension : uint32_t {
|
enum class Dimension : uint32_t {
|
||||||
|
@ -146,6 +156,15 @@ enum class IndexFormat : uint32_t {
|
||||||
kInt32,
|
kInt32,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// GPUSURFACENUMBER from a game .pdb.
|
||||||
|
enum class SurfaceNumFormat : uint32_t {
|
||||||
|
kUnsignedRepeat = 0,
|
||||||
|
kSignedRepeat = 1,
|
||||||
|
kUnsignedInteger = 2,
|
||||||
|
kSignedInteger = 3,
|
||||||
|
kFloat = 7,
|
||||||
|
};
|
||||||
|
|
||||||
enum class MsaaSamples : uint32_t {
|
enum class MsaaSamples : uint32_t {
|
||||||
k1X = 0,
|
k1X = 0,
|
||||||
k2X = 1,
|
k2X = 1,
|
||||||
|
@ -567,6 +586,40 @@ XEPACKEDUNION(xe_gpu_fetch_group_t, {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// GPU_MEMEXPORT_STREAM_CONSTANT from a game .pdb - float constant for memexport
|
||||||
|
// stream configuration.
|
||||||
|
// This is used with the floating-point ALU in shaders (written to eA using
|
||||||
|
// mad), so the dwords have a normalized exponent when reinterpreted as floats
|
||||||
|
// (otherwise they would be flushed to zero), but actually these are packed
|
||||||
|
// integers. dword_1 specifically is 2^23 because
|
||||||
|
// powf(2.0f, 23.0f) + float(i) == 0x4B000000 | i
|
||||||
|
// so mad can pack indices as integers in the lower bits.
|
||||||
|
XEPACKEDUNION(xe_gpu_memexport_stream_t, {
|
||||||
|
XEPACKEDSTRUCTANONYMOUS({
|
||||||
|
uint32_t base_address : 30; // +0 dword_0 physical address >> 2
|
||||||
|
uint32_t const_0x1 : 2; // +30
|
||||||
|
|
||||||
|
uint32_t const_0x4b000000; // +0 dword_1
|
||||||
|
|
||||||
|
Endian128 endianness : 3; // +0 dword_2
|
||||||
|
uint32_t unused_0 : 5; // +3
|
||||||
|
ColorFormat format : 6; // +8
|
||||||
|
uint32_t unused_1 : 2; // +14
|
||||||
|
SurfaceNumFormat num_format : 3; // +16
|
||||||
|
uint32_t red_blue_swap : 1; // +19
|
||||||
|
uint32_t const_0x4b0 : 12; // +20
|
||||||
|
|
||||||
|
uint32_t index_count : 23; // +0 dword_3
|
||||||
|
uint32_t const_0x96 : 9; // +23
|
||||||
|
});
|
||||||
|
XEPACKEDSTRUCTANONYMOUS({
|
||||||
|
uint32_t dword_0;
|
||||||
|
uint32_t dword_1;
|
||||||
|
uint32_t dword_2;
|
||||||
|
uint32_t dword_3;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// Enum of event values used for VGT_EVENT_INITIATOR
|
// Enum of event values used for VGT_EVENT_INITIATOR
|
||||||
enum Event {
|
enum Event {
|
||||||
VS_DEALLOC = 0,
|
VS_DEALLOC = 0,
|
||||||
|
|
Loading…
Reference in New Issue