gallivm: make rho-approximation opt-in instead of opt-out

The RHO approximation code has issues passing the OpenGL ES 3.0 CTS, so
let's make correctness the default instead.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12125>
This commit is contained in:
Erik Faye-Lund
2021-08-02 14:34:02 +02:00
committed by Marge Bot
parent 6538b3e566
commit 34423391e0
3 changed files with 4 additions and 5 deletions
+1 -1
View File
@@ -44,7 +44,7 @@
#define GALLIVM_DEBUG_DUMP_BC (1 << 5)
#define GALLIVM_PERF_BRILINEAR (1 << 0)
#define GALLIVM_PERF_NO_RHO_APPROX (1 << 1)
#define GALLIVM_PERF_RHO_APPROX (1 << 1)
#define GALLIVM_PERF_NO_QUAD_LOD (1 << 2)
#define GALLIVM_PERF_NO_OPT (1 << 3)
#define GALLIVM_PERF_NO_AOS_SAMPLING (1 << 4)
+2 -3
View File
@@ -56,12 +56,11 @@ unsigned gallivm_perf = 0;
static const struct debug_named_value lp_bld_perf_flags[] = {
{ "brilinear", GALLIVM_PERF_BRILINEAR, "enable brilinear optimization" },
{ "no_rho_approx", GALLIVM_PERF_NO_RHO_APPROX, "disable rho_approx optimization" },
{ "rho_approx", GALLIVM_PERF_RHO_APPROX, "enable rho_approx optimization" },
{ "no_quad_lod", GALLIVM_PERF_NO_QUAD_LOD, "disable quad_lod optimization" },
{ "no_aos_sampling", GALLIVM_PERF_NO_AOS_SAMPLING, "disable aos sampling optimization" },
{ "nopt", GALLIVM_PERF_NO_OPT, "disable optimization passes to speed up shader compilation" },
{ "no_filter_hacks", GALLIVM_PERF_NO_RHO_APPROX |
GALLIVM_PERF_NO_QUAD_LOD, "disable filter optimization hacks" },
{ "no_filter_hacks", GALLIVM_PERF_NO_QUAD_LOD, "disable filter optimization hacks" },
DEBUG_NAMED_VALUE_END
};
@@ -3358,7 +3358,7 @@ lp_build_sample_soa_code(struct gallivm_state *gallivm,
if (gallivm_perf & GALLIVM_PERF_NO_QUAD_LOD || op_is_lodq) {
bld.no_quad_lod = TRUE;
}
if (gallivm_perf & GALLIVM_PERF_NO_RHO_APPROX || op_is_lodq) {
if (!(gallivm_perf & GALLIVM_PERF_RHO_APPROX) || op_is_lodq) {
bld.no_rho_approx = TRUE;
}
if (!(gallivm_perf & GALLIVM_PERF_BRILINEAR) || op_is_lodq || lod_bias || explicit_lod) {