From 59c9bfa8f32e63656ab8bfc6a05b7305d353fd6a Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Mon, 24 Feb 2025 18:42:49 -0800 Subject: [PATCH] isl: Drop compile time "use separate stencil" checks. This code is a lot of mess for no real benefit. It's existed since the dawn of isl, and serves to let you optimize out a single check in release builds for Ironlake and Sandybridge systems. All other uses are for asserts, which already get compiled out in release mode. Reviewed-by: Dylan Baker Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/isl/isl.c | 7 +++---- src/intel/isl/isl.h | 12 ------------ src/intel/isl/isl_emit_depth_stencil.c | 2 +- src/intel/isl/isl_gfx4.c | 2 +- src/intel/isl/isl_gfx7.c | 2 +- 5 files changed, 6 insertions(+), 19 deletions(-) diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index cde768e2abb..81bad0f7bd5 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -330,13 +330,12 @@ isl_device_init(struct isl_device *dev, * properties chosen during runtime. */ ISL_GFX_VER_SANITIZE(dev); - ISL_DEV_USE_SEPARATE_STENCIL_SANITIZE(dev); /* Did we break hiz or stencil? */ - if (ISL_DEV_USE_SEPARATE_STENCIL(dev)) + if (dev->use_separate_stencil) assert(info->has_hiz_and_separate_stencil); if (info->must_use_separate_stencil) - assert(ISL_DEV_USE_SEPARATE_STENCIL(dev)); + assert(dev->use_separate_stencil); dev->ss.size = RENDER_SURFACE_STATE_length(info) * 4; dev->ss.align = isl_align(dev->ss.size, 32); @@ -1846,7 +1845,7 @@ isl_choose_array_pitch_span(const struct isl_device *dev, return ISL_ARRAY_PITCH_SPAN_FULL; } else if ((ISL_GFX_VER(dev) == 5 || ISL_GFX_VER(dev) == 6) && - ISL_DEV_USE_SEPARATE_STENCIL(dev) && + dev->use_separate_stencil && isl_surf_usage_is_stencil(info->usage)) { /* [ILK-SNB] Errata from the Sandy Bridge PRM >> Volume 4 Part 1: * Graphics Core >> Section 7.18.3.7: Surface Arrays: diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h index 79fce8f7045..32bfc9f64db 100644 --- a/src/intel/isl/isl.h +++ b/src/intel/isl/isl.h @@ -87,18 +87,6 @@ struct intel_device_info; #define ISL_DEV_IS_BAYTRAIL(__dev) ((__dev)->info->platform == INTEL_PLATFORM_BYT) #endif -#ifndef ISL_DEV_USE_SEPARATE_STENCIL -/** - * You can define this as a compile-time constant in the CFLAGS. For example, - * ``gcc -DISL_DEV_USE_SEPARATE_STENCIL(dev)=1 ...``. - */ -#define ISL_DEV_USE_SEPARATE_STENCIL(__dev) ((__dev)->use_separate_stencil) -#define ISL_DEV_USE_SEPARATE_STENCIL_SANITIZE(__dev) -#else -#define ISL_DEV_USE_SEPARATE_STENCIL_SANITIZE(__dev) \ - (assert(ISL_DEV_USE_SEPARATE_STENCIL(__dev) == (__dev)->use_separate_stencil)) -#endif - /** * Hardware enumeration SURFACE_FORMAT. * diff --git a/src/intel/isl/isl_emit_depth_stencil.c b/src/intel/isl/isl_emit_depth_stencil.c index dd3dd62b08e..9aa7e8aeed3 100644 --- a/src/intel/isl/isl_emit_depth_stencil.c +++ b/src/intel/isl/isl_emit_depth_stencil.c @@ -212,7 +212,7 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch, const bool separate_stencil = info->stencil_surf && info->stencil_surf->format == ISL_FORMAT_R8_UINT; if (separate_stencil || info->hiz_usage == ISL_AUX_USAGE_HIZ) { - assert(ISL_DEV_USE_SEPARATE_STENCIL(dev)); + assert(dev->use_separate_stencil); /* From the IronLake PRM, Vol 2 Part 1: * * 3DSTATE_DEPTH_BUFFER::Separate Stencil Buffer Enable diff --git a/src/intel/isl/isl_gfx4.c b/src/intel/isl/isl_gfx4.c index 02b2f3dc0bf..124cb90ca55 100644 --- a/src/intel/isl/isl_gfx4.c +++ b/src/intel/isl/isl_gfx4.c @@ -48,7 +48,7 @@ isl_gfx4_filter_tiling(const struct isl_device *dev, *flags &= (1 << dev->shader_tiling) | ISL_TILING_LINEAR_BIT; if (isl_surf_usage_is_depth_or_stencil(info->usage)) { - assert(!ISL_DEV_USE_SEPARATE_STENCIL(dev)); + assert(!dev->use_separate_stencil); /* From the g35 PRM Vol. 2, 3DSTATE_DEPTH_BUFFER::Tile Walk: * diff --git a/src/intel/isl/isl_gfx7.c b/src/intel/isl/isl_gfx7.c index 6fc58ecd7fe..9c406b7306e 100644 --- a/src/intel/isl/isl_gfx7.c +++ b/src/intel/isl/isl_gfx7.c @@ -194,7 +194,7 @@ isl_gfx6_filter_tiling(const struct isl_device *dev, isl_tiling_flags_t *flags) { /* IVB+ requires separate stencil */ - assert(ISL_DEV_USE_SEPARATE_STENCIL(dev)); + assert(dev->use_separate_stencil); /* Clear flags unsupported on this hardware */ assert(ISL_GFX_VERX10(dev) < 125);