summaryrefslogtreecommitdiffstats
path: root/src/gallium/targets/d3dadapter9
diff options
context:
space:
mode:
authorAxel Davy <[email protected]>2019-04-10 23:09:08 +0200
committerAxel Davy <[email protected]>2019-04-30 19:18:51 +0200
commitc097ff36174d77df9b641be392c5f15d4ab930fd (patch)
tree1d21a435453f77d137634ac83804d7bb8a8d9d2f /src/gallium/targets/d3dadapter9
parent7dcc85b46e2253c1efd425e55749e1714a260a21 (diff)
st/nine: Add drirc option to use data_internal for dynamic textures
dynamic textures seem to have predictable stride. This stride should be the same as for a ram buffer. It seems some game don't check the actual stride value, assuming it to be the expected one. Thus this workaround (protected by drirc option) is to use an intermediate ram buffer. Fixes Rayman Legends texture issues when enabled. Signed-off-by: Axel Davy <[email protected]>
Diffstat (limited to 'src/gallium/targets/d3dadapter9')
-rw-r--r--src/gallium/targets/d3dadapter9/drm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/targets/d3dadapter9/drm.c b/src/gallium/targets/d3dadapter9/drm.c
index 4418ceb93d6..b9ae076c544 100644
--- a/src/gallium/targets/d3dadapter9/drm.c
+++ b/src/gallium/targets/d3dadapter9/drm.c
@@ -59,6 +59,7 @@ DRI_CONF_BEGIN
DRI_CONF_NINE_ALLOWDISCARDDELAYEDRELEASE("true")
DRI_CONF_NINE_TEARFREEDISCARD("false")
DRI_CONF_NINE_CSMT(-1)
+ DRI_CONF_NINE_DYNAMICTEXTUREWORKAROUND("false")
DRI_CONF_SECTION_END
DRI_CONF_END;
@@ -298,6 +299,11 @@ drm_create_adapter( int fd,
else
ctx->base.csmt_force = -1;
+ if (driCheckOption(&userInitOptions, "dynamic_texture_workaround", DRI_BOOL))
+ ctx->base.dynamic_texture_workaround = driQueryOptionb(&userInitOptions, "dynamic_texture_workaround");
+ else
+ ctx->base.dynamic_texture_workaround = FALSE;
+
driDestroyOptionCache(&userInitOptions);
driDestroyOptionInfo(&defaultInitOptions);