Mesa (staging/20.1): driconf: add force_integer_tex_nearest option
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed May 6 17:43:02 UTC 2020
Module: Mesa
Branch: staging/20.1
Commit: a25234047f721f3d26bf5a9d6d9f5d033c28badc
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a25234047f721f3d26bf5a9d6d9f5d033c28badc
Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date: Mon Apr 20 14:20:28 2020 +0200
driconf: add force_integer_tex_nearest option
And enable it for "GRID Autosport" and "DIRT: Showdown" games.
CC: 20.1 <mesa-stable at lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1258
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4647>
(cherry picked from commit 403eb507f586e62acd648778dc1e7d20b5e1fa2f)
---
.pick_status.json | 2 +-
src/gallium/auxiliary/pipe-loader/driinfo_gallium.h | 1 +
src/gallium/include/state_tracker/st_api.h | 1 +
src/gallium/state_trackers/dri/dri_screen.c | 2 ++
src/mesa/state_tracker/st_extensions.c | 2 ++
src/util/00-mesa-defaults.conf | 10 ++++++++++
src/util/xmlpool/t_options.h | 5 +++++
7 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/.pick_status.json b/.pick_status.json
index 9b192a8e0c2..16943525774 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -940,7 +940,7 @@
"description": "driconf: add force_integer_tex_nearest option",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": null
},
diff --git a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h
index 72e979f1ec7..1be9abd87fe 100644
--- a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h
+++ b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h
@@ -42,4 +42,5 @@ DRI_CONF_SECTION_MISCELLANEOUS
DRI_CONF_VS_POSITION_ALWAYS_INVARIANT("false")
DRI_CONF_ALLOW_RGB10_CONFIGS("true")
DRI_CONF_ALLOW_FP16_CONFIGS("false")
+ DRI_CONF_FORCE_INTEGER_TEX_NEAREST("false")
DRI_CONF_SECTION_END
diff --git a/src/gallium/include/state_tracker/st_api.h b/src/gallium/include/state_tracker/st_api.h
index 2d351e0b961..3777449e61d 100644
--- a/src/gallium/include/state_tracker/st_api.h
+++ b/src/gallium/include/state_tracker/st_api.h
@@ -235,6 +235,7 @@ struct st_config_options
bool allow_glsl_cross_stage_interpolation_mismatch;
bool allow_glsl_layout_qualifier_on_function_parameters;
bool allow_draw_out_of_order;
+ bool force_integer_tex_nearest;
char *force_gl_vendor;
unsigned char config_options_sha1[20];
};
diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c
index 943d6fe0ba8..4f1bf166125 100644
--- a/src/gallium/state_trackers/dri/dri_screen.c
+++ b/src/gallium/state_trackers/dri/dri_screen.c
@@ -84,6 +84,8 @@ dri_fill_st_options(struct dri_screen *screen)
options->allow_higher_compat_version =
driQueryOptionb(optionCache, "allow_higher_compat_version");
options->glsl_zero_init = driQueryOptionb(optionCache, "glsl_zero_init");
+ options->force_integer_tex_nearest =
+ driQueryOptionb(optionCache, "force_integer_tex_nearest");
options->vs_position_always_invariant =
driQueryOptionb(optionCache, "vs_position_always_invariant");
options->force_glsl_abs_sqrt =
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 386b035a052..902c0d3ee43 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -1203,6 +1203,8 @@ void st_init_extensions(struct pipe_screen *screen,
consts->GLSLZeroInit = options->glsl_zero_init;
+ consts->ForceIntegerTexNearest = options->force_integer_tex_nearest;
+
consts->VendorOverride = options->force_gl_vendor;
consts->UniformBooleanTrue = consts->NativeIntegers ? ~0U : fui(1.0f);
diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf
index ea9eb0d1965..d2a82b2a19a 100644
--- a/src/util/00-mesa-defaults.conf
+++ b/src/util/00-mesa-defaults.conf
@@ -268,6 +268,16 @@ TODO: document the other workarounds.
<option name="glsl_zero_init" value="true" />
</application>
+ <application name="GRID Autosport" executable="GridAutosport">
+ <!-- https://gitlab.freedesktop.org/mesa/mesa/issues/1258 -->
+ <option name="force_integer_tex_nearest" value="true" />
+ </application>
+
+ <application name="DIRT: Showdown" executable="dirt.i386">
+ <!-- https://gitlab.freedesktop.org/mesa/mesa/issues/1258 -->
+ <option name="force_integer_tex_nearest" value="true" />
+ </application>
+
<!-- The GL thread whitelist is below, workarounds are above.
Keep it that way. -->
diff --git a/src/util/xmlpool/t_options.h b/src/util/xmlpool/t_options.h
index bfa3a80b6ac..0dbac8e0479 100644
--- a/src/util/xmlpool/t_options.h
+++ b/src/util/xmlpool/t_options.h
@@ -309,6 +309,11 @@ DRI_CONF_OPT_BEGIN_B(allow_fp16_configs, def) \
DRI_CONF_DESC(en,gettext("Allow exposure of visuals and fbconfigs with fp16 formats")) \
DRI_CONF_OPT_END
+#define DRI_CONF_FORCE_INTEGER_TEX_NEAREST(def) \
+DRI_CONF_OPT_BEGIN_B(force_integer_tex_nearest, def) \
+ DRI_CONF_DESC(en,gettext("Force integer textures to use nearest filtering")) \
+DRI_CONF_OPT_END
+
/**
* \brief Initialization configuration options
*/
More information about the mesa-commit
mailing list