Refactor bindless surface state offsets

Related-To: NEO-4607

Change-Id: I0b0ac275b532cf33f0292d3cf92abf2f49ff354f
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe
2020-04-27 15:40:12 +02:00
committed by sys_ocldev
parent 1401b45018
commit d2c07cb9ed
11 changed files with 159 additions and 28 deletions

View File

@@ -19,6 +19,31 @@ namespace NEO {
struct GEN11 {
#include "shared/source/generated/gen11/hw_cmds_generated_gen11.inl"
struct DataPortBindlessSurfaceExtendedMessageDescriptor {
union {
struct {
uint32_t bindlessSurfaceOffset : 20;
uint32_t reserved : 1;
uint32_t executionUnitExtendedMessageDescriptorDefinition : 11;
};
uint32_t packed;
};
DataPortBindlessSurfaceExtendedMessageDescriptor() {
packed = 0;
}
void setBindlessSurfaceOffset(uint32_t offsetInBindlessSurfaceHeapInBytes) {
bindlessSurfaceOffset = offsetInBindlessSurfaceHeapInBytes >> 6;
}
uint32_t getBindlessSurfaceOffsetToPatch() {
return bindlessSurfaceOffset << 12;
}
};
static_assert(sizeof(DataPortBindlessSurfaceExtendedMessageDescriptor) == sizeof(DataPortBindlessSurfaceExtendedMessageDescriptor::packed), "");
};
struct ICLFamily : public GEN11 {
using PARSE = CmdParse<ICLFamily>;