From aba75d054660a5c1636534128a93b7794625ef83 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kristian=20H=C3=B8gsberg=20Kristensen?= Date: Thu, 18 Jun 2015 11:12:36 -0700 Subject: [PATCH] vk/headers: Make General State offsets relocations --- src/vulkan/gen75_pack.h | 42 +++++++++++++++++++++++++---------- src/vulkan/gen7_pack.h | 42 +++++++++++++++++++++++++---------- src/vulkan/gen8_pack.h | 49 +++++++++++++++++++++++++++++------------ 3 files changed, 95 insertions(+), 38 deletions(-) diff --git a/src/vulkan/gen75_pack.h b/src/vulkan/gen75_pack.h index 1653cb11ae3..c4e71686c2a 100644 --- a/src/vulkan/gen75_pack.h +++ b/src/vulkan/gen75_pack.h @@ -1856,7 +1856,7 @@ struct GEN75_3DSTATE_DS { uint32_t AccessesUAV; uint32_t IllegalOpcodeExceptionEnable; uint32_t SoftwareExceptionEnable; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t DispatchGRFStartRegisterForURBData; uint32_t PatchURBEntryReadLength; @@ -1898,11 +1898,14 @@ GEN75_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - dw[3] = + uint32_t dw3 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[3] = + __gen_combine_address(data, &dw[3], values->ScratchSpaceBasePointer, dw3); + dw[4] = __gen_field(values->DispatchGRFStartRegisterForURBData, 20, 24) | __gen_field(values->PatchURBEntryReadLength, 11, 17) | @@ -2258,7 +2261,7 @@ struct GEN75_3DSTATE_GS { uint32_t GSaccessesUAV; uint32_t MaskStackExceptionEnable; uint32_t SoftwareExceptionEnable; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t OutputVertexSize; uint32_t OutputTopology; @@ -2320,11 +2323,14 @@ GEN75_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - dw[3] = + uint32_t dw3 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[3] = + __gen_combine_address(data, &dw[3], values->ScratchSpaceBasePointer, dw3); + dw[4] = __gen_field(values->OutputVertexSize, 23, 28) | __gen_field(values->OutputTopology, 17, 22) | @@ -2440,7 +2446,7 @@ struct GEN75_3DSTATE_HS { uint32_t StatisticsEnable; uint32_t InstanceCount; uint32_t KernelStartPointer; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t SingleProgramFlow; #define Dmask 0 @@ -2488,11 +2494,14 @@ GEN75_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst, __gen_offset(values->KernelStartPointer, 6, 31) | 0; - dw[4] = + uint32_t dw4 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[4] = + __gen_combine_address(data, &dw[4], values->ScratchSpaceBasePointer, dw4); + dw[5] = __gen_field(values->SingleProgramFlow, 27, 27) | __gen_field(values->VectorMaskEnable, 26, 26) | @@ -2860,7 +2869,7 @@ struct GEN75_3DSTATE_PS { uint32_t IllegalOpcodeExceptionEnable; uint32_t MaskStackExceptionEnable; uint32_t SoftwareExceptionEnable; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t MaximumNumberofThreads; uint32_t SampleMask; @@ -2917,11 +2926,14 @@ GEN75_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - dw[3] = + uint32_t dw3 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[3] = + __gen_combine_address(data, &dw[3], values->ScratchSpaceBasePointer, dw3); + dw[4] = __gen_field(values->MaximumNumberofThreads, 23, 31) | __gen_field(values->SampleMask, 12, 19) | @@ -4729,7 +4741,7 @@ struct GEN75_3DSTATE_VS { uint32_t IllegalOpcodeExceptionEnable; uint32_t VSaccessesUAV; uint32_t SoftwareExceptionEnable; - uint32_t ScratchSpaceBaseOffset; + __gen_address_type ScratchSpaceBaseOffset; uint32_t PerThreadScratchSpace; uint32_t DispatchGRFStartRegisterforURBData; uint32_t VertexURBEntryReadLength; @@ -4770,11 +4782,14 @@ GEN75_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - dw[3] = + uint32_t dw3 = __gen_offset(values->ScratchSpaceBaseOffset, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[3] = + __gen_combine_address(data, &dw[3], values->ScratchSpaceBaseOffset, dw3); + dw[4] = __gen_field(values->DispatchGRFStartRegisterforURBData, 20, 24) | __gen_field(values->VertexURBEntryReadLength, 11, 16) | @@ -5517,7 +5532,7 @@ struct GEN75_MEDIA_VFE_STATE { uint32_t MediaCommandOpcode; uint32_t SubOpcode; uint32_t DwordLength; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t StackSize; uint32_t PerThreadScratchSpace; uint32_t MaximumNumberofThreads; @@ -5571,12 +5586,15 @@ GEN75_MEDIA_VFE_STATE_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->DwordLength, 0, 15) | 0; - dw[1] = + uint32_t dw1 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->StackSize, 4, 7) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[1] = + __gen_combine_address(data, &dw[1], values->ScratchSpaceBasePointer, dw1); + dw[2] = __gen_field(values->MaximumNumberofThreads, 16, 31) | __gen_field(values->NumberofURBEntries, 8, 15) | diff --git a/src/vulkan/gen7_pack.h b/src/vulkan/gen7_pack.h index 75f193891d6..88780322540 100644 --- a/src/vulkan/gen7_pack.h +++ b/src/vulkan/gen7_pack.h @@ -1521,7 +1521,7 @@ struct GEN7_3DSTATE_DS { uint32_t FloatingPointMode; uint32_t IllegalOpcodeExceptionEnable; uint32_t SoftwareExceptionEnable; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t DispatchGRFStartRegisterForURBData; uint32_t PatchURBEntryReadLength; @@ -1561,11 +1561,14 @@ GEN7_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - dw[3] = + uint32_t dw3 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[3] = + __gen_combine_address(data, &dw[3], values->ScratchSpaceBasePointer, dw3); + dw[4] = __gen_field(values->DispatchGRFStartRegisterForURBData, 20, 24) | __gen_field(values->PatchURBEntryReadLength, 11, 17) | @@ -1618,7 +1621,7 @@ struct GEN7_3DSTATE_GS { uint32_t IllegalOpcodeExceptionEnable; uint32_t MaskStackExceptionEnable; uint32_t SoftwareExceptionEnable; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t OutputVertexSize; uint32_t OutputTopology; @@ -1677,11 +1680,14 @@ GEN7_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - dw[3] = + uint32_t dw3 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[3] = + __gen_combine_address(data, &dw[3], values->ScratchSpaceBasePointer, dw3); + dw[4] = __gen_field(values->OutputVertexSize, 23, 28) | __gen_field(values->OutputTopology, 17, 22) | @@ -1794,7 +1800,7 @@ struct GEN7_3DSTATE_HS { uint32_t StatisticsEnable; uint32_t InstanceCount; uint32_t KernelStartPointer; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t SingleProgramFlow; #define Dmask 0 @@ -1840,11 +1846,14 @@ GEN7_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst, __gen_offset(values->KernelStartPointer, 6, 31) | 0; - dw[4] = + uint32_t dw4 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[4] = + __gen_combine_address(data, &dw[4], values->ScratchSpaceBasePointer, dw4); + dw[5] = __gen_field(values->SingleProgramFlow, 27, 27) | __gen_field(values->VectorMaskEnable, 26, 26) | @@ -2208,7 +2217,7 @@ struct GEN7_3DSTATE_PS { uint32_t IllegalOpcodeExceptionEnable; uint32_t MaskStackExceptionEnable; uint32_t SoftwareExceptionEnable; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t MaximumNumberofThreads; uint32_t PushConstantEnable; @@ -2262,11 +2271,14 @@ GEN7_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - dw[3] = + uint32_t dw3 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[3] = + __gen_combine_address(data, &dw[3], values->ScratchSpaceBasePointer, dw3); + dw[4] = __gen_field(values->MaximumNumberofThreads, 24, 31) | __gen_field(values->PushConstantEnable, 11, 11) | @@ -3915,7 +3927,7 @@ struct GEN7_3DSTATE_VS { uint32_t FloatingPointMode; uint32_t IllegalOpcodeExceptionEnable; uint32_t SoftwareExceptionEnable; - uint32_t ScratchSpaceBaseOffset; + __gen_address_type ScratchSpaceBaseOffset; uint32_t PerThreadScratchSpace; uint32_t DispatchGRFStartRegisterforURBData; uint32_t VertexURBEntryReadLength; @@ -3954,11 +3966,14 @@ GEN7_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - dw[3] = + uint32_t dw3 = __gen_offset(values->ScratchSpaceBaseOffset, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[3] = + __gen_combine_address(data, &dw[3], values->ScratchSpaceBaseOffset, dw3); + dw[4] = __gen_field(values->DispatchGRFStartRegisterforURBData, 20, 24) | __gen_field(values->VertexURBEntryReadLength, 11, 16) | @@ -4684,7 +4699,7 @@ struct GEN7_MEDIA_VFE_STATE { uint32_t MediaCommandOpcode; uint32_t SubOpcode; uint32_t DwordLength; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t MaximumNumberofThreads; uint32_t NumberofURBEntries; @@ -4739,11 +4754,14 @@ GEN7_MEDIA_VFE_STATE_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->DwordLength, 0, 15) | 0; - dw[1] = + uint32_t dw1 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + dw[1] = + __gen_combine_address(data, &dw[1], values->ScratchSpaceBasePointer, dw1); + dw[2] = __gen_field(values->MaximumNumberofThreads, 16, 31) | __gen_field(values->NumberofURBEntries, 8, 15) | diff --git a/src/vulkan/gen8_pack.h b/src/vulkan/gen8_pack.h index 3b9e6235975..04d4e6126f9 100644 --- a/src/vulkan/gen8_pack.h +++ b/src/vulkan/gen8_pack.h @@ -166,7 +166,7 @@ struct GEN8_3DSTATE_VS { uint32_t IllegalOpcodeExceptionEnable; uint32_t AccessesUAV; uint32_t SoftwareExceptionEnable; - uint64_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t DispatchGRFStartRegisterForURBData; uint32_t VertexURBEntryReadLength; @@ -215,11 +215,14 @@ GEN8_3DSTATE_VS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - uint64_t qw4 = + uint32_t dw4 = __gen_offset(values->ScratchSpaceBasePointer, 10, 63) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + uint64_t qw4 = + __gen_combine_address(data, &dw[4], values->ScratchSpaceBasePointer, dw4); + dw[4] = qw4; dw[5] = qw4 >> 32; @@ -2244,7 +2247,7 @@ struct GEN8_3DSTATE_DS { uint32_t AccessesUAV; uint32_t IllegalOpcodeExceptionEnable; uint32_t SoftwareExceptionEnable; - uint64_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t DispatchGRFStartRegisterForURBData; uint32_t PatchURBEntryReadLength; @@ -2294,11 +2297,14 @@ GEN8_3DSTATE_DS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - uint64_t qw4 = + uint32_t dw4 = __gen_offset(values->ScratchSpaceBasePointer, 10, 63) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + uint64_t qw4 = + __gen_combine_address(data, &dw[4], values->ScratchSpaceBasePointer, dw4); + dw[4] = qw4; dw[5] = qw4 >> 32; @@ -2677,7 +2683,7 @@ struct GEN8_3DSTATE_GS { uint32_t MaskStackExceptionEnable; uint32_t SoftwareExceptionEnable; uint32_t ExpectedVertexCount; - uint64_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t OutputVertexSize; uint32_t OutputTopology; @@ -2749,11 +2755,14 @@ GEN8_3DSTATE_GS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->ExpectedVertexCount, 0, 5) | 0; - uint64_t qw4 = + uint32_t dw4 = __gen_offset(values->ScratchSpaceBasePointer, 10, 63) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + uint64_t qw4 = + __gen_combine_address(data, &dw[4], values->ScratchSpaceBasePointer, dw4); + dw[4] = qw4; dw[5] = qw4 >> 32; @@ -2888,7 +2897,7 @@ struct GEN8_3DSTATE_HS { uint32_t MaximumNumberofThreads; uint32_t InstanceCount; uint64_t KernelStartPointer; - uint64_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t SingleProgramFlow; #define Dmask 0 @@ -2938,11 +2947,14 @@ GEN8_3DSTATE_HS_pack(__gen_user_data *data, void * restrict dst, dw[3] = qw3; dw[4] = qw3 >> 32; - uint64_t qw5 = + uint32_t dw5 = __gen_offset(values->ScratchSpaceBasePointer, 10, 63) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + uint64_t qw5 = + __gen_combine_address(data, &dw[5], values->ScratchSpaceBasePointer, dw5); + dw[5] = qw5; dw[6] = qw5 >> 32; @@ -3280,7 +3292,7 @@ struct GEN8_3DSTATE_PS { uint32_t IllegalOpcodeExceptionEnable; uint32_t MaskStackExceptionEnable; uint32_t SoftwareExceptionEnable; - uint64_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t PerThreadScratchSpace; uint32_t MaximumNumberofThreadsPerPSD; uint32_t PushConstantEnable; @@ -3335,11 +3347,14 @@ GEN8_3DSTATE_PS_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->SoftwareExceptionEnable, 7, 7) | 0; - uint64_t qw4 = + uint32_t dw4 = __gen_offset(values->ScratchSpaceBasePointer, 10, 63) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; + uint64_t qw4 = + __gen_combine_address(data, &dw[4], values->ScratchSpaceBasePointer, dw4); + dw[4] = qw4; dw[5] = qw4 >> 32; @@ -6404,10 +6419,10 @@ struct GEN8_MEDIA_VFE_STATE { uint32_t MediaCommandOpcode; uint32_t SubOpcode; uint32_t DwordLength; - uint32_t ScratchSpaceBasePointer; + __gen_address_type ScratchSpaceBasePointer; uint32_t StackSize; uint32_t PerThreadScratchSpace; - uint32_t ScratchSpaceBasePointerHigh; + __gen_address_type ScratchSpaceBasePointerHigh; uint32_t MaximumNumberofThreads; uint32_t NumberofURBEntries; #define Maintainingtheexistingtimestampstate 0 @@ -6458,16 +6473,22 @@ GEN8_MEDIA_VFE_STATE_pack(__gen_user_data *data, void * restrict dst, __gen_field(values->DwordLength, 0, 15) | 0; - dw[1] = + uint32_t dw1 = __gen_offset(values->ScratchSpaceBasePointer, 10, 31) | __gen_field(values->StackSize, 4, 7) | __gen_field(values->PerThreadScratchSpace, 0, 3) | 0; - dw[2] = + dw[1] = + __gen_combine_address(data, &dw[1], values->ScratchSpaceBasePointer, dw1); + + uint32_t dw2 = __gen_offset(values->ScratchSpaceBasePointerHigh, 0, 15) | 0; + dw[2] = + __gen_combine_address(data, &dw[2], values->ScratchSpaceBasePointerHigh, dw2); + dw[3] = __gen_field(values->MaximumNumberofThreads, 16, 31) | __gen_field(values->NumberofURBEntries, 8, 15) | -- 2.30.2