mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 07:14:10 +08:00
fix(wa): Override AuxilarySurfaceMode when required
Related-To: NEO-8012 Signed-off-by: Konstanty Misiak <konstanty.misiak@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
5881b97db2
commit
a1a8d8fded
@@ -335,7 +335,7 @@ class ImageHw : public Image {
|
||||
}
|
||||
|
||||
void setImageArg(void *memory, bool setAsMediaBlockImage, uint32_t mipLevel, uint32_t rootDeviceIndex, bool useGlobalAtomics) override;
|
||||
void setAuxParamsForMultisamples(RENDER_SURFACE_STATE *surfaceState);
|
||||
void setAuxParamsForMultisamples(RENDER_SURFACE_STATE *surfaceState, uint32_t rootDeviceIndex);
|
||||
void setMediaImageArg(void *memory, uint32_t rootDeviceIndex) override;
|
||||
void setMediaSurfaceRotation(void *memory) override;
|
||||
void setSurfaceMemoryObjectControlState(void *memory, uint32_t value) override;
|
||||
|
||||
@@ -100,7 +100,7 @@ void ImageHw<GfxFamily>::setImageArg(void *memory, bool setAsMediaBlockImage, ui
|
||||
surfaceState->setNumberOfMultisamples((typename RENDER_SURFACE_STATE::NUMBER_OF_MULTISAMPLES)mcsSurfaceInfo.multisampleCount);
|
||||
|
||||
if (imageDesc.num_samples > 1) {
|
||||
setAuxParamsForMultisamples(surfaceState);
|
||||
setAuxParamsForMultisamples(surfaceState, rootDeviceIndex);
|
||||
} else if (graphicsAllocation->isCompressionEnabled()) {
|
||||
EncodeSurfaceState<GfxFamily>::setImageAuxParamsForCCS(surfaceState, gmm);
|
||||
} else {
|
||||
@@ -117,14 +117,16 @@ void ImageHw<GfxFamily>::setImageArg(void *memory, bool setAsMediaBlockImage, ui
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
void ImageHw<GfxFamily>::setAuxParamsForMultisamples(RENDER_SURFACE_STATE *surfaceState) {
|
||||
void ImageHw<GfxFamily>::setAuxParamsForMultisamples(RENDER_SURFACE_STATE *surfaceState, uint32_t rootDeviceIndex) {
|
||||
using SURFACE_FORMAT = typename RENDER_SURFACE_STATE::SURFACE_FORMAT;
|
||||
|
||||
if (getMcsAllocation()) {
|
||||
auto mcsGmm = getMcsAllocation()->getDefaultGmm();
|
||||
|
||||
if (mcsGmm->unifiedAuxTranslationCapable() && mcsGmm->hasMultisampleControlSurface()) {
|
||||
EncodeSurfaceState<GfxFamily>::setAuxParamsForMCSCCS(surfaceState);
|
||||
auto *releaseHelper = executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->getReleaseHelper();
|
||||
DEBUG_BREAK_IF(releaseHelper == nullptr);
|
||||
EncodeSurfaceState<GfxFamily>::setAuxParamsForMCSCCS(surfaceState, releaseHelper);
|
||||
surfaceState->setAuxiliarySurfacePitch(mcsGmm->getUnifiedAuxPitchTiles());
|
||||
surfaceState->setAuxiliarySurfaceQpitch(mcsGmm->getAuxQPitch());
|
||||
EncodeSurfaceState<GfxFamily>::setClearColorParams(surfaceState, mcsGmm);
|
||||
|
||||
Reference in New Issue
Block a user