mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 17:00:13 +01:00
i965: Change the hiz-override env var to a driconf option.
The force-enable option is dropped, now that the hardware we were
concerned about has HiZ on by default. Now, instead of doing
INTEL_HIZ=0 to test disabling hiz, you can set hiz=false.
v2: Disable separate stencil on gen6 when HIZ is turned off.
(previously, this had to be done manually in addition).
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
This commit is contained in:
parent
447aff5b02
commit
d09fce51f0
3 changed files with 13 additions and 28 deletions
|
|
@ -627,7 +627,7 @@ intelInitContext(struct intel_context *intel,
|
|||
|
||||
intel->has_separate_stencil = intel->intelScreen->hw_has_separate_stencil;
|
||||
intel->must_use_separate_stencil = intel->intelScreen->hw_must_use_separate_stencil;
|
||||
intel->has_hiz = intel->intelScreen->hw_has_hiz;
|
||||
intel->has_hiz = intel->gen >= 6;
|
||||
intel->has_llc = intel->intelScreen->hw_has_llc;
|
||||
intel->has_swizzling = intel->intelScreen->hw_has_swizzling;
|
||||
|
||||
|
|
@ -740,6 +740,13 @@ intelInitContext(struct intel_context *intel,
|
|||
"texture_tiling");
|
||||
intel->use_early_z = driQueryOptionb(&intel->optionCache, "early_z");
|
||||
|
||||
if (!driQueryOptionb(&intel->optionCache, "hiz")) {
|
||||
intel->has_hiz = false;
|
||||
/* On gen6, you can only do separate stencil with HIZ. */
|
||||
if (intel->gen == 6)
|
||||
intel->has_separate_stencil = false;
|
||||
}
|
||||
|
||||
intel->prim.primitive = ~0;
|
||||
|
||||
/* Force all software fallbacks */
|
||||
|
|
|
|||
|
|
@ -57,6 +57,10 @@ PUBLIC const char __driConfigOptions[] =
|
|||
DRI_CONF_DESC(en, "Enable texture tiling")
|
||||
DRI_CONF_OPT_END
|
||||
|
||||
DRI_CONF_OPT_BEGIN(hiz, bool, true)
|
||||
DRI_CONF_DESC(en, "Enable Hierarchical Z on gen6+")
|
||||
DRI_CONF_OPT_END
|
||||
|
||||
DRI_CONF_OPT_BEGIN(early_z, bool, false)
|
||||
DRI_CONF_DESC(en, "Enable early Z in classic mode (unstable, 945-only).")
|
||||
DRI_CONF_OPT_END
|
||||
|
|
@ -86,7 +90,7 @@ PUBLIC const char __driConfigOptions[] =
|
|||
DRI_CONF_SECTION_END
|
||||
DRI_CONF_END;
|
||||
|
||||
const GLuint __driNConfigOptions = 13;
|
||||
const GLuint __driNConfigOptions = 14;
|
||||
|
||||
#include "intel_batchbuffer.h"
|
||||
#include "intel_buffers.h"
|
||||
|
|
@ -619,29 +623,6 @@ intel_init_bufmgr(struct intel_screen *intelScreen)
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override intel_screen.hw_has_hiz with environment variable INTEL_HIZ.
|
||||
*
|
||||
* Valid values for INTEL_HIZ are "0" and "1". If an invalid valid value is
|
||||
* encountered, a warning is emitted and INTEL_HIZ is ignored.
|
||||
*/
|
||||
static void
|
||||
intel_override_hiz(struct intel_screen *intel)
|
||||
{
|
||||
const char *s = getenv("INTEL_HIZ");
|
||||
if (!s) {
|
||||
return;
|
||||
} else if (!strncmp("0", s, 2)) {
|
||||
intel->hw_has_hiz = false;
|
||||
} else if (!strncmp("1", s, 2)) {
|
||||
intel->hw_has_hiz = true;
|
||||
} else {
|
||||
fprintf(stderr,
|
||||
"warning: env variable INTEL_HIZ=\"%s\" has invalid value "
|
||||
"and is ignored", s);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Override intel_screen.hw_has_separate_stencil with environment variable
|
||||
* INTEL_SEPARATE_STENCIL.
|
||||
|
|
@ -761,7 +742,6 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
|
|||
|
||||
intelScreen->hw_has_separate_stencil = intelScreen->gen >= 6;
|
||||
intelScreen->hw_must_use_separate_stencil = intelScreen->gen >= 7;
|
||||
intelScreen->hw_has_hiz = intelScreen->gen >= 6;
|
||||
intelScreen->dri2_has_hiz = INTEL_DRI2_HAS_HIZ_UNKNOWN;
|
||||
|
||||
#if defined(I915_PARAM_HAS_LLC)
|
||||
|
|
@ -772,7 +752,6 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
|
|||
intelScreen->hw_has_llc = intelScreen->gen >= 6;
|
||||
#endif
|
||||
|
||||
intel_override_hiz(intelScreen);
|
||||
intel_override_separate_stencil(intelScreen);
|
||||
|
||||
api_mask = (1 << __DRI_API_OPENGL);
|
||||
|
|
|
|||
|
|
@ -111,7 +111,6 @@ struct intel_screen
|
|||
*/
|
||||
bool hw_has_separate_stencil;
|
||||
bool hw_must_use_separate_stencil;
|
||||
bool hw_has_hiz;
|
||||
enum intel_dri2_has_hiz dri2_has_hiz;
|
||||
|
||||
bool kernel_has_gen7_sol_reset;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue