fix: change SamplerState IndirectStatePointer functions

- set and get ExtendedIndirectStatePointer

Related-To: NEO-7063

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe
2024-04-16 11:40:41 +00:00
committed by Compute-Runtime-Automation
parent a230c762e0
commit 4b4d21a5e6
3 changed files with 24 additions and 16 deletions

View File

@@ -3132,15 +3132,15 @@ typedef struct tagSAMPLER_STATE {
INDIRECTSTATEPOINTER_ALIGN_SIZE = 0x40,
} INDIRECTSTATEPOINTER;
inline void setIndirectStatePointer(const uint32_t value) {
UNRECOVERABLE_IF(value > 0xffffff);
TheStructure.Common.IndirectStatePointer = static_cast<uint32_t>(value) >> INDIRECTSTATEPOINTER_BIT_SHIFT;
}
inline uint32_t getIndirectStatePointer() const {
return TheStructure.Common.IndirectStatePointer << INDIRECTSTATEPOINTER_BIT_SHIFT;
UNRECOVERABLE_IF(value & 0x3f);
TheStructure.Common.IndirectStatePointer = static_cast<uint32_t>(value & 0xffffc0) >> INDIRECTSTATEPOINTER_BIT_SHIFT;
setExtendedIndirectStatePointer(value);
}
inline void setExtendedIndirectStatePointer(const uint32_t value) {
UNRECOVERABLE_IF(value > 0xff);
TheStructure.Common.ExtendedIndirectStatePointer = value;
TheStructure.Common.ExtendedIndirectStatePointer = static_cast<uint32_t>(value & 0xff000000) >> 24;
}
inline uint64_t getIndirectStatePointer() const {
return (TheStructure.Common.ExtendedIndirectStatePointer << 24) | (TheStructure.Common.IndirectStatePointer << INDIRECTSTATEPOINTER_BIT_SHIFT);
}
inline uint32_t getExtendedIndirectStatePointer() const {
return TheStructure.Common.ExtendedIndirectStatePointer;

View File

@@ -2782,12 +2782,16 @@ typedef struct tagSAMPLER_STATE {
INDIRECTSTATEPOINTER_BIT_SHIFT = 0x6,
INDIRECTSTATEPOINTER_ALIGN_SIZE = 0x40,
} INDIRECTSTATEPOINTER;
inline void setIndirectStatePointer(const uint64_t value) {
UNRECOVERABLE_IF(value > 0xffffc0L);
TheStructure.Common.IndirectStatePointer = static_cast<uint32_t>(value) >> INDIRECTSTATEPOINTER_BIT_SHIFT;
inline void setIndirectStatePointer(const uint32_t value) {
UNRECOVERABLE_IF(value & 0x3f);
TheStructure.Common.IndirectStatePointer = static_cast<uint32_t>(value & 0xffffc0) >> INDIRECTSTATEPOINTER_BIT_SHIFT;
setExtendedIndirectStatePointer(value);
}
inline void setExtendedIndirectStatePointer(const uint32_t value) {
TheStructure.Common.ExtendedIndirectStatePointer = static_cast<uint32_t>(value & 0xff000000) >> 24;
}
inline uint64_t getIndirectStatePointer() const {
return TheStructure.Common.IndirectStatePointer << INDIRECTSTATEPOINTER_BIT_SHIFT;
return (TheStructure.Common.ExtendedIndirectStatePointer << 24) | (TheStructure.Common.IndirectStatePointer << INDIRECTSTATEPOINTER_BIT_SHIFT);
}
inline void setTczAddressControlMode(const TEXTURE_COORDINATE_MODE value) {
TheStructure.Common.TczAddressControlMode = value;

View File

@@ -2239,7 +2239,7 @@ typedef struct tagSAMPLER_STATE {
uint32_t ReturnFilterWeightForBorderTexels : BITFIELD_RANGE(3, 3);
uint32_t Reserved_68 : BITFIELD_RANGE(4, 5);
uint32_t IndirectStatePointer : BITFIELD_RANGE(6, 23);
uint32_t Reserved_88 : BITFIELD_RANGE(24, 31);
uint32_t ExtendedIndirectStatePointer : BITFIELD_RANGE(24, 31);
uint32_t TczAddressControlMode : BITFIELD_RANGE(0, 2);
uint32_t TcyAddressControlMode : BITFIELD_RANGE(3, 5);
uint32_t TcxAddressControlMode : BITFIELD_RANGE(6, 8);
@@ -2531,11 +2531,15 @@ typedef struct tagSAMPLER_STATE {
INDIRECTSTATEPOINTER_ALIGN_SIZE = 0x40,
} INDIRECTSTATEPOINTER;
inline void setIndirectStatePointer(const uint32_t value) {
DEBUG_BREAK_IF(value > 0xffffc0);
TheStructure.Common.IndirectStatePointer = static_cast<uint32_t>(value) >> INDIRECTSTATEPOINTER_BIT_SHIFT;
UNRECOVERABLE_IF(value & 0x3f);
TheStructure.Common.IndirectStatePointer = static_cast<uint32_t>(value & 0xffffc0) >> INDIRECTSTATEPOINTER_BIT_SHIFT;
setExtendedIndirectStatePointer(value);
}
inline uint32_t getIndirectStatePointer() const {
return TheStructure.Common.IndirectStatePointer << INDIRECTSTATEPOINTER_BIT_SHIFT;
inline void setExtendedIndirectStatePointer(const uint32_t value) {
TheStructure.Common.ExtendedIndirectStatePointer = static_cast<uint32_t>(value & 0xff000000) >> 24;
}
inline uint64_t getIndirectStatePointer() const {
return (TheStructure.Common.ExtendedIndirectStatePointer << 24) | (TheStructure.Common.IndirectStatePointer << INDIRECTSTATEPOINTER_BIT_SHIFT);
}
inline void setTczAddressControlMode(const TEXTURE_COORDINATE_MODE value) {
TheStructure.Common.TczAddressControlMode = value;