mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 06:20:09 +01:00
isl: Finish tiling filtering for Gen6.
Gen6 only has one additional restriction over Gen7+, so we just add it
to the existing gen7 function (which actually covers later gens too).
This should stop FINISHME spew when running GL on Sandybridge.
v2: Fix bytes per block vs. bits per block confusion (Jason) and
rename function to gen6_filter_tiling (Jason and Chad).
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
9fec15a7e0
commit
081f21f29b
3 changed files with 15 additions and 5 deletions
|
|
@ -236,11 +236,11 @@ isl_surf_choose_tiling(const struct isl_device *dev,
|
|||
{
|
||||
isl_tiling_flags_t tiling_flags = info->tiling_flags;
|
||||
|
||||
if (ISL_DEV_GEN(dev) >= 7) {
|
||||
gen7_filter_tiling(dev, info, &tiling_flags);
|
||||
if (ISL_DEV_GEN(dev) >= 6) {
|
||||
gen6_filter_tiling(dev, info, &tiling_flags);
|
||||
} else {
|
||||
isl_finishme("%s: gen%u", __func__, ISL_DEV_GEN(dev));
|
||||
gen7_filter_tiling(dev, info, &tiling_flags);
|
||||
gen6_filter_tiling(dev, info, &tiling_flags);
|
||||
}
|
||||
|
||||
#define CHOOSE(__tiling) \
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ gen7_format_needs_valign2(const struct isl_device *dev,
|
|||
* flags except ISL_TILING_X_BIT and ISL_TILING_LINEAR_BIT.
|
||||
*/
|
||||
void
|
||||
gen7_filter_tiling(const struct isl_device *dev,
|
||||
gen6_filter_tiling(const struct isl_device *dev,
|
||||
const struct isl_surf_init_info *restrict info,
|
||||
isl_tiling_flags_t *flags)
|
||||
{
|
||||
|
|
@ -297,6 +297,16 @@ gen7_filter_tiling(const struct isl_device *dev,
|
|||
*/
|
||||
*flags &= ~ISL_TILING_Y0_BIT;
|
||||
}
|
||||
|
||||
/* From the Sandybridge PRM, Volume 1, Part 2, page 32:
|
||||
*
|
||||
* "NOTE: 128BPE Format Color Buffer ( render target ) MUST be either
|
||||
* TileX or Linear."
|
||||
*
|
||||
* This is necessary all the way back to 965, but is permitted on Gen7+.
|
||||
*/
|
||||
if (ISL_DEV_GEN(dev) < 7 && isl_format_get_layout(info->format)->bpb >= 128)
|
||||
*flags &= ~ISL_TILING_Y0_BIT;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
void
|
||||
gen7_filter_tiling(const struct isl_device *dev,
|
||||
gen6_filter_tiling(const struct isl_device *dev,
|
||||
const struct isl_surf_init_info *restrict info,
|
||||
isl_tiling_flags_t *flags);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue