@@ -6824,23 +6824,24 @@ STATIC_ASSERT(4 == sizeof(PIPELINE_SELECT));
68246824typedef struct tagSTATE_COMPUTE_MODE {
68256825 union tagTheStructure {
68266826 struct tagCommon {
6827+ // DWORD 0
68276828 uint32_t DwordLength : BITFIELD_RANGE(0 , 7 );
68286829 uint32_t Reserved_8 : BITFIELD_RANGE(8 , 15 );
68296830 uint32_t _3DCommandSubOpcode : BITFIELD_RANGE(16 , 23 );
68306831 uint32_t _3DCommandOpcode : BITFIELD_RANGE(24 , 26 );
68316832 uint32_t CommandSubtype : BITFIELD_RANGE(27 , 28 );
68326833 uint32_t CommandType : BITFIELD_RANGE(29 , 31 );
6834+ // DWORD 1
68336835 uint32_t DisableSupportForMultiGpuFence : BITFIELD_RANGE(0 , 0 );
68346836 uint32_t ForceDisableSupportForMultiGpuAtomics : BITFIELD_RANGE(1 , 1 );
6835- uint32_t ForceDisableSupportForMultiGpuPartialWrites
6836- : BITFIELD_RANGE(2 , 2 );
6837+ uint32_t ForceDisableSupportForMultiGpuPartialWrites : BITFIELD_RANGE(2 , 2 );
68376838 uint32_t ForceNonCoherent : BITFIELD_RANGE(3 , 4 );
6838- uint32_t Reserved_37 : BITFIELD_RANGE(5 , 9 );
6839- uint32_t BindingTableAlignment : BITFIELD_RANGE(10 , 10 );
6839+ uint32_t FastClearDisabledOnCompressedSurface : BITFIELD_RANGE(5 , 5 );
6840+ uint32_t DisableSlmReadMergeOptimization : BITFIELD_RANGE(6 , 6 );
6841+ uint32_t Reserved_39 : BITFIELD_RANGE(7 , 10 );
68406842 uint32_t DisableAtomicOnClearData : BITFIELD_RANGE(11 , 11 );
6841- uint32_t CoherentAccessL1CacheDisable : BITFIELD_RANGE(12 , 12 );
6842- uint32_t DisableL1InvalidateForNonL1CacheableWrites
6843- : BITFIELD_RANGE(13 , 13 );
6843+ uint32_t Reserved_44 : BITFIELD_RANGE(12 , 12 );
6844+ uint32_t DisableL1InvalidateForNonL1CacheableWrites : BITFIELD_RANGE(13 , 13 );
68446845 uint32_t Reserved_46 : BITFIELD_RANGE(14 , 14 );
68456846 uint32_t LargeGrfMode : BITFIELD_RANGE(15 , 15 );
68466847 uint32_t MaskBits : BITFIELD_RANGE(16 , 31 );
@@ -6867,36 +6868,37 @@ typedef struct tagSTATE_COMPUTE_MODE {
68676868 FORCE_NON_COHERENT_FORCE_CPU_NON_COHERENT = 0x1 ,
68686869 FORCE_NON_COHERENT_FORCE_GPU_NON_COHERENT = 0x2 ,
68696870 } FORCE_NON_COHERENT;
6870- typedef enum tagBINDING_TABLE_ALIGNMENT {
6871- BINDING_TABLE_ALIGNMENT_LEGACY = 0x0 ,
6872- } BINDING_TABLE_ALIGNMENT;
6871+ typedef enum tagFAST_CLEAR_DISABLED_ON_COMPRESSED_SURFACE {
6872+ FAST_CLEAR_DISABLED_ON_COMPRESSED_SURFACE_ENABLED = 0x0 ,
6873+ FAST_CLEAR_DISABLED_ON_COMPRESSED_SURFACE_DISABLED = 0x1 ,
6874+ } FAST_CLEAR_DISABLED_ON_COMPRESSED_SURFACE;
6875+ typedef enum tagDISABLE_SLM_READ_MERGE_OPTIMIZATION {
6876+ DISABLE_SLM_READ_MERGE_OPTIMIZATION_ENABLED = 0x0 ,
6877+ DISABLE_SLM_READ_MERGE_OPTIMIZATION_DISABLED = 0x1 ,
6878+ } DISABLE_SLM_READ_MERGE_OPTIMIZATION;
68736879 typedef enum tagDISABLE_ATOMIC_ON_CLEAR_DATA {
68746880 DISABLE_ATOMIC_ON_CLEAR_DATA_ENABLE = 0x0 ,
68756881 DISABLE_ATOMIC_ON_CLEAR_DATA_DISABLE = 0x1 ,
68766882 } DISABLE_ATOMIC_ON_CLEAR_DATA;
68776883 inline void init (void ) {
68786884 memset (&TheStructure, 0 , sizeof (TheStructure));
68796885 TheStructure.Common .DwordLength = DWORD_LENGTH_EXCLUDES_DWORD_0_1;
6880- TheStructure.Common ._3DCommandSubOpcode =
6881- _3D_COMMAND_SUB_OPCODE_STATE_COMPUTE_MODE;
6882- TheStructure.Common ._3DCommandOpcode =
6883- _3D_COMMAND_OPCODE_GFXPIPE_NONPIPELINED;
6886+ TheStructure.Common ._3DCommandSubOpcode = _3D_COMMAND_SUB_OPCODE_STATE_COMPUTE_MODE;
6887+ TheStructure.Common ._3DCommandOpcode = _3D_COMMAND_OPCODE_GFXPIPE_NONPIPELINED;
68846888 TheStructure.Common .CommandSubtype = COMMAND_SUBTYPE_GFXPIPE_COMMON;
68856889 TheStructure.Common .CommandType = COMMAND_TYPE_GFXPIPE;
68866890 TheStructure.Common .ForceNonCoherent = FORCE_NON_COHERENT_FORCE_DISABLED;
6887- TheStructure.Common .BindingTableAlignment = BINDING_TABLE_ALIGNMENT_LEGACY;
6888- TheStructure.Common .DisableAtomicOnClearData =
6889- DISABLE_ATOMIC_ON_CLEAR_DATA_ENABLE;
6890- TheStructure.Common .ForceDisableSupportForMultiGpuAtomics = 1 ;
6891- TheStructure.Common .ForceDisableSupportForMultiGpuPartialWrites = 1 ;
6891+ TheStructure.Common .FastClearDisabledOnCompressedSurface = FAST_CLEAR_DISABLED_ON_COMPRESSED_SURFACE_ENABLED;
6892+ TheStructure.Common .DisableSlmReadMergeOptimization = DISABLE_SLM_READ_MERGE_OPTIMIZATION_ENABLED;
6893+ TheStructure.Common .DisableAtomicOnClearData = DISABLE_ATOMIC_ON_CLEAR_DATA_ENABLE;
68926894 }
68936895 static tagSTATE_COMPUTE_MODE sInit (void ) {
68946896 STATE_COMPUTE_MODE state;
68956897 state.init ();
68966898 return state;
68976899 }
68986900 inline uint32_t &getRawData (const uint32_t index) {
6899- DEBUG_BREAK_IF (index >= 2 );
6901+ UNRECOVERABLE_IF (index >= 2 );
69006902 return TheStructure.RawData [index];
69016903 }
69026904 inline void setDisableSupportForMultiGpuFence (const bool value) {
@@ -6921,37 +6923,30 @@ typedef struct tagSTATE_COMPUTE_MODE {
69216923 TheStructure.Common .ForceNonCoherent = value;
69226924 }
69236925 inline FORCE_NON_COHERENT getForceNonCoherent (void ) const {
6924- return static_cast <FORCE_NON_COHERENT>(
6925- TheStructure.Common .ForceNonCoherent );
6926+ return static_cast <FORCE_NON_COHERENT>(TheStructure.Common .ForceNonCoherent );
69266927 }
6927- inline void setBindingTableAlignment (const BINDING_TABLE_ALIGNMENT value) {
6928- TheStructure.Common .BindingTableAlignment = value;
6928+ inline void setFastClearDisabledOnCompressedSurface (const FAST_CLEAR_DISABLED_ON_COMPRESSED_SURFACE value) {
6929+ TheStructure.Common .FastClearDisabledOnCompressedSurface = value;
69296930 }
6930- inline BINDING_TABLE_ALIGNMENT getBindingTableAlignment (void ) const {
6931- return static_cast <BINDING_TABLE_ALIGNMENT>(
6932- TheStructure.Common .BindingTableAlignment );
6931+ inline FAST_CLEAR_DISABLED_ON_COMPRESSED_SURFACE getFastClearDisabledOnCompressedSurface (void ) const {
6932+ return static_cast <FAST_CLEAR_DISABLED_ON_COMPRESSED_SURFACE>(TheStructure.Common .FastClearDisabledOnCompressedSurface );
69336933 }
6934- inline void
6935- setDisableAtomicOnClearData (const DISABLE_ATOMIC_ON_CLEAR_DATA value) {
6936- TheStructure.Common .DisableAtomicOnClearData = value;
6934+ inline void setDisableSlmReadMergeOptimization (const DISABLE_SLM_READ_MERGE_OPTIMIZATION value) {
6935+ TheStructure.Common .DisableSlmReadMergeOptimization = value;
69376936 }
6938- inline DISABLE_ATOMIC_ON_CLEAR_DATA getDisableAtomicOnClearData (void ) const {
6939- return static_cast <DISABLE_ATOMIC_ON_CLEAR_DATA>(
6940- TheStructure.Common .DisableAtomicOnClearData );
6937+ inline DISABLE_SLM_READ_MERGE_OPTIMIZATION getDisableSlmReadMergeOptimization (void ) const {
6938+ return static_cast <DISABLE_SLM_READ_MERGE_OPTIMIZATION>(TheStructure.Common .DisableSlmReadMergeOptimization );
69416939 }
6942- inline void setCoherentAccessL1CacheDisable (const uint32_t value) {
6943- DEBUG_BREAK_IF (value > 0x1000 );
6944- TheStructure.Common .CoherentAccessL1CacheDisable = value;
6940+ inline void setDisableAtomicOnClearData (const DISABLE_ATOMIC_ON_CLEAR_DATA value) {
6941+ TheStructure.Common .DisableAtomicOnClearData = value;
69456942 }
6946- inline uint32_t getCoherentAccessL1CacheDisable (void ) const {
6947- return TheStructure.Common .CoherentAccessL1CacheDisable ;
6943+ inline DISABLE_ATOMIC_ON_CLEAR_DATA getDisableAtomicOnClearData (void ) const {
6944+ return static_cast <DISABLE_ATOMIC_ON_CLEAR_DATA>( TheStructure.Common .DisableAtomicOnClearData ) ;
69486945 }
6949- inline void
6950- setDisableL1InvalidateForNonL1CacheableWrites (const uint32_t value) {
6951- DEBUG_BREAK_IF (value > 0x2000 );
6946+ inline void setDisableL1InvalidateForNonL1CacheableWrites (const bool value) {
69526947 TheStructure.Common .DisableL1InvalidateForNonL1CacheableWrites = value;
69536948 }
6954- inline uint32_t getDisableL1InvalidateForNonL1CacheableWrites (void ) const {
6949+ inline bool getDisableL1InvalidateForNonL1CacheableWrites (void ) const {
69556950 return TheStructure.Common .DisableL1InvalidateForNonL1CacheableWrites ;
69566951 }
69576952 inline void setLargeGrfMode (const bool value) {
@@ -6961,7 +6956,7 @@ typedef struct tagSTATE_COMPUTE_MODE {
69616956 return TheStructure.Common .LargeGrfMode ;
69626957 }
69636958 inline void setMaskBits (const uint32_t value) {
6964- DEBUG_BREAK_IF (value > 0xffff0000L );
6959+ UNRECOVERABLE_IF (value > 0xffff );
69656960 TheStructure.Common .MaskBits = value;
69666961 }
69676962 inline uint32_t getMaskBits (void ) const {
0 commit comments