Disable compression flags when image is not compressed
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
parent
ad9aaa260a
commit
1281e858df
|
@ -90,6 +90,8 @@ void ImageHw<GfxFamily>::setImageArg(void *memory, bool setAsMediaBlockImage, ui
|
||||||
setAuxParamsForMultisamples(surfaceState);
|
setAuxParamsForMultisamples(surfaceState);
|
||||||
} else if (gmm && gmm->isRenderCompressed) {
|
} else if (gmm && gmm->isRenderCompressed) {
|
||||||
EncodeSurfaceState<GfxFamily>::setImageAuxParamsForCCS(surfaceState, gmm);
|
EncodeSurfaceState<GfxFamily>::setImageAuxParamsForCCS(surfaceState, gmm);
|
||||||
|
} else {
|
||||||
|
EncodeSurfaceState<GfxFamily>::disableCompressionFlags(surfaceState);
|
||||||
}
|
}
|
||||||
appendSurfaceStateDepthParams(surfaceState, gmm);
|
appendSurfaceStateDepthParams(surfaceState, gmm);
|
||||||
EncodeSurfaceState<GfxFamily>::appendImageCompressionParams(surfaceState, graphicsAllocation, gmmHelper, isImageFromBuffer());
|
EncodeSurfaceState<GfxFamily>::appendImageCompressionParams(surfaceState, graphicsAllocation, gmmHelper, isImageFromBuffer());
|
||||||
|
|
|
@ -126,6 +126,22 @@ GEN12LPTEST_F(gen12LpImageTests, givenRenderCompressionThenSurfaceStateParamsAre
|
||||||
EXPECT_EQ(surfaceState.getAuxiliarySurfaceMode(), RENDER_SURFACE_STATE::AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_CCS_E);
|
EXPECT_EQ(surfaceState.getAuxiliarySurfaceMode(), RENDER_SURFACE_STATE::AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_CCS_E);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GEN12LPTEST_F(gen12LpImageTests, givenNoCompressionWhenProgramingImageSurfaceStateThenCompressionIsDisabled) {
|
||||||
|
MockContext context;
|
||||||
|
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
|
||||||
|
cl_image_desc imgDesc = Image2dDefaults::imageDesc;
|
||||||
|
std::unique_ptr<Image> image(Image2dHelper<>::create(&context, &imgDesc));
|
||||||
|
auto surfaceState = FamilyType::cmdInitRenderSurfaceState;
|
||||||
|
surfaceState.setMemoryCompressionEnable(true);
|
||||||
|
surfaceState.setAuxiliarySurfaceMode(RENDER_SURFACE_STATE::AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_CCS_E);
|
||||||
|
auto imageHw = static_cast<ImageHw<FamilyType> *>(image.get());
|
||||||
|
imageHw->getGraphicsAllocation(context.getDevice(0)->getRootDeviceIndex())->getDefaultGmm()->isRenderCompressed = false;
|
||||||
|
imageHw->setImageArg(&surfaceState, false, 0, 0, false);
|
||||||
|
|
||||||
|
EXPECT_FALSE(surfaceState.getMemoryCompressionEnable());
|
||||||
|
EXPECT_EQ(surfaceState.getAuxiliarySurfaceMode(), RENDER_SURFACE_STATE::AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
GEN12LPTEST_F(gen12LpImageTests, givenMediaCompressionThenSurfaceStateParamsAreSetForMediaCompression) {
|
GEN12LPTEST_F(gen12LpImageTests, givenMediaCompressionThenSurfaceStateParamsAreSetForMediaCompression) {
|
||||||
MockContext context;
|
MockContext context;
|
||||||
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
|
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
|
||||||
|
|
|
@ -264,6 +264,7 @@ struct EncodeSurfaceState {
|
||||||
static void setAuxParamsForMCSCCS(R_SURFACE_STATE *surfaceState);
|
static void setAuxParamsForMCSCCS(R_SURFACE_STATE *surfaceState);
|
||||||
static void setClearColorParams(R_SURFACE_STATE *surfaceState, Gmm *gmm);
|
static void setClearColorParams(R_SURFACE_STATE *surfaceState, Gmm *gmm);
|
||||||
static void setFlagsForMediaCompression(R_SURFACE_STATE *surfaceState, Gmm *gmm);
|
static void setFlagsForMediaCompression(R_SURFACE_STATE *surfaceState, Gmm *gmm);
|
||||||
|
static void disableCompressionFlags(R_SURFACE_STATE *surfaceState);
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename GfxFamily>
|
template <typename GfxFamily>
|
||||||
|
|
|
@ -31,4 +31,7 @@ bool EncodeSetMMIO<Family>::isRemapApplicable(uint32_t offset) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename Family>
|
||||||
|
void EncodeSurfaceState<Family>::disableCompressionFlags(R_SURFACE_STATE *surfaceState) {
|
||||||
|
}
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
|
|
@ -47,4 +47,9 @@ bool EncodeSetMMIO<Family>::isRemapApplicable(uint32_t offset) {
|
||||||
(0x4400 <= offset && offset <= 0x441f);
|
(0x4400 <= offset && offset <= 0x441f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename Family>
|
||||||
|
void EncodeSurfaceState<Family>::disableCompressionFlags(R_SURFACE_STATE *surfaceState) {
|
||||||
|
surfaceState->setAuxiliarySurfaceMode(Family::RENDER_SURFACE_STATE::AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_NONE);
|
||||||
|
surfaceState->setMemoryCompressionEnable(false);
|
||||||
|
}
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
|
Loading…
Reference in New Issue