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);
|
||||
} else if (gmm && gmm->isRenderCompressed) {
|
||||
EncodeSurfaceState<GfxFamily>::setImageAuxParamsForCCS(surfaceState, gmm);
|
||||
} else {
|
||||
EncodeSurfaceState<GfxFamily>::disableCompressionFlags(surfaceState);
|
||||
}
|
||||
appendSurfaceStateDepthParams(surfaceState, gmm);
|
||||
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);
|
||||
}
|
||||
|
||||
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) {
|
||||
MockContext context;
|
||||
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
|
||||
|
|
|
@ -264,6 +264,7 @@ struct EncodeSurfaceState {
|
|||
static void setAuxParamsForMCSCCS(R_SURFACE_STATE *surfaceState);
|
||||
static void setClearColorParams(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>
|
||||
|
|
|
@ -31,4 +31,7 @@ bool EncodeSetMMIO<Family>::isRemapApplicable(uint32_t offset) {
|
|||
return false;
|
||||
}
|
||||
|
||||
template <typename Family>
|
||||
void EncodeSurfaceState<Family>::disableCompressionFlags(R_SURFACE_STATE *surfaceState) {
|
||||
}
|
||||
} // namespace NEO
|
||||
|
|
|
@ -47,4 +47,9 @@ bool EncodeSetMMIO<Family>::isRemapApplicable(uint32_t offset) {
|
|||
(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
|
||||
|
|
Loading…
Reference in New Issue