Additional method to disable compression

Resolves: NEO-5828

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
Szymon Morek
2021-05-10 16:03:59 +00:00
committed by Compute-Runtime-Automation
parent 14bc9fb0bf
commit 058679b5c2
5 changed files with 16 additions and 7 deletions

View File

@@ -125,7 +125,8 @@ void Gmm::setupImageResourceParams(ImageInfo &imgInfo) {
}
void Gmm::applyAuxFlagsForBuffer(bool preferRenderCompression) {
bool allowRenderCompression = HwHelper::renderCompressedBuffersSupported(*clientContext->getHardwareInfo()) &&
auto hardwareInfo = clientContext->getHardwareInfo();
bool allowRenderCompression = HwHelper::renderCompressedBuffersSupported(*hardwareInfo) &&
preferRenderCompression;
if (allowRenderCompression) {
@@ -134,6 +135,7 @@ void Gmm::applyAuxFlagsForBuffer(bool preferRenderCompression) {
resourceParams.Flags.Gpu.UnifiedAuxSurface = 1;
isRenderCompressed = true;
}
HwHelper::get(hardwareInfo->platform.eDisplayCoreFamily).applyAdditionalCompressionSettings(*this, !isRenderCompressed);
}
void Gmm::queryImageParams(ImageInfo &imgInfo) {

View File

@@ -28,6 +28,7 @@ namespace NEO {
class GmmHelper;
class GraphicsAllocation;
class TagAllocatorBase;
class Gmm;
struct AllocationData;
struct AllocationProperties;
struct EngineControl;
@@ -153,6 +154,7 @@ class HwHelper {
size_t initialTagCount, CommandStreamReceiverType csrType,
DeviceBitfield deviceBitfield) const = 0;
virtual size_t getTimestampPacketAllocatorAlignment() const = 0;
virtual void applyAdditionalCompressionSettings(Gmm &gmm, bool isNotCompressed) const = 0;
static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo);
static uint32_t getEnginesCount(const HardwareInfo &hwInfo);
@@ -381,6 +383,8 @@ class HwHelperHw : public HwHelper {
DeviceBitfield deviceBitfield) const override;
size_t getTimestampPacketAllocatorAlignment() const override;
void applyAdditionalCompressionSettings(Gmm &gmm, bool isNotCompressed) const override;
protected:
LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override;

View File

@@ -641,4 +641,7 @@ size_t HwHelperHw<GfxFamily>::getPreemptionAllocationAlignment() const {
return 256 * MemoryConstants::kiloByte;
}
template <typename GfxFamily>
void HwHelperHw<GfxFamily>::applyAdditionalCompressionSettings(Gmm &gmm, bool isNotCompressed) const {}
} // namespace NEO

View File

@@ -40,12 +40,6 @@ void HwInfoConfigHw<gfxProduct>::adjustPlatformForProductFamily(HardwareInfo *hw
template <PRODUCT_FAMILY gfxProduct>
void HwInfoConfigHw<gfxProduct>::adjustSamplerState(void *sampler, const HardwareInfo &hwInfo) {}
template <PRODUCT_FAMILY gfxProduct>
void HwInfoConfigHw<gfxProduct>::enableRenderCompression(HardwareInfo *hwInfo) {
hwInfo->capabilityTable.ftrRenderCompressedImages = hwInfo->featureTable.ftrE2ECompression;
hwInfo->capabilityTable.ftrRenderCompressedBuffers = hwInfo->featureTable.ftrE2ECompression;
}
template <PRODUCT_FAMILY gfxProduct>
void HwInfoConfigHw<gfxProduct>::enableBlitterOperationsSupport(HardwareInfo *hwInfo) {
hwInfo->capabilityTable.blitterOperationsSupported = HwHelper::get(hwInfo->platform.eRenderCoreFamily).obtainBlitterPreference(*hwInfo);

View File

@@ -19,4 +19,10 @@ uint64_t HwInfoConfigHw<gfxProduct>::getCrossDeviceSharedMemCapabilities() {
return 0;
}
template <PRODUCT_FAMILY gfxProduct>
void HwInfoConfigHw<gfxProduct>::enableRenderCompression(HardwareInfo *hwInfo) {
hwInfo->capabilityTable.ftrRenderCompressedImages = hwInfo->featureTable.ftrE2ECompression;
hwInfo->capabilityTable.ftrRenderCompressedBuffers = hwInfo->featureTable.ftrE2ECompression;
}
} // namespace NEO