aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine/surface9.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/nine/surface9.c')
-rw-r--r--src/gallium/state_trackers/nine/surface9.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/state_trackers/nine/surface9.c b/src/gallium/state_trackers/nine/surface9.c
index d57d13ef7c6..db74de2823a 100644
--- a/src/gallium/state_trackers/nine/surface9.c
+++ b/src/gallium/state_trackers/nine/surface9.c
@@ -146,7 +146,11 @@ NineSurface9_ctor( struct NineSurface9 *This,
This->base.info.bind,
FALSE,
TRUE);
- if (This->base.info.format != This->format_internal) {
+ if (This->base.info.format != This->format_internal ||
+ /* DYNAMIC Textures requires same stride as ram buffers.
+ * Do not use workaround by default as it eats more virtual space */
+ (pParams->device->workarounds.dynamic_texture_workaround &&
+ pDesc->Pool == D3DPOOL_DEFAULT && pDesc->Usage & D3DUSAGE_DYNAMIC)) {
This->data_internal = align_calloc(
nine_format_get_level_alloc_size(This->format_internal,
pDesc->Width,