From c5f75bc2001126c688b384ce18221a8db02c2cfd Mon Sep 17 00:00:00 2001 From: Axel Davy Date: Mon, 15 Mar 2021 22:35:26 +0100 Subject: [PATCH] st/nine: Allow to override the vram size MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This can be useful for debugging, or for some apps not supporting >= 4GB of vram. Signed-off-by: Axel Davy Acked-by: Timur Kristóf Part-of: --- src/gallium/frontends/nine/adapter9.h | 1 + src/gallium/frontends/nine/device9.c | 2 ++ src/gallium/targets/d3dadapter9/drm.c | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/src/gallium/frontends/nine/adapter9.h b/src/gallium/frontends/nine/adapter9.h index ef12968..c40bacd 100644 --- a/src/gallium/frontends/nine/adapter9.h +++ b/src/gallium/frontends/nine/adapter9.h @@ -45,6 +45,7 @@ struct d3dadapter9_context BOOL dynamic_texture_workaround; BOOL shader_inline_constants; int memfd_virtualsizelimit; + int override_vram_size; void (*destroy)( struct d3dadapter9_context *ctx ); }; diff --git a/src/gallium/frontends/nine/device9.c b/src/gallium/frontends/nine/device9.c index b0a5dc8..289c650 100644 --- a/src/gallium/frontends/nine/device9.c +++ b/src/gallium/frontends/nine/device9.c @@ -276,6 +276,8 @@ NineDevice9_ctor( struct NineDevice9 *This, * instance. This is the Win 7 behavior. * Win XP shares this counter across multiple devices. */ This->available_texture_mem = This->screen->get_param(This->screen, PIPE_CAP_VIDEO_MEMORY); + This->available_texture_mem = (pCTX->override_vram_size >= 0) ? + (long long)pCTX->override_vram_size : This->available_texture_mem; This->available_texture_mem <<= 20; /* We cap texture memory usage to 95% of what is reported free initially diff --git a/src/gallium/targets/d3dadapter9/drm.c b/src/gallium/targets/d3dadapter9/drm.c index c6df297..cb05d5c 100644 --- a/src/gallium/targets/d3dadapter9/drm.c +++ b/src/gallium/targets/d3dadapter9/drm.c @@ -62,6 +62,9 @@ const driOptionDescription __driConfigOptionsNine[] = { DRI_CONF_NINE_SHADERINLINECONSTANTS(false) DRI_CONF_NINE_SHMEM_LIMIT() DRI_CONF_SECTION_END + DRI_CONF_SECTION_DEBUG + DRI_CONF_OVERRIDE_VRAM_SIZE() + DRI_CONF_SECTION_END }; struct fallback_card_config { @@ -279,6 +282,7 @@ drm_create_adapter( int fd, ctx->base.dynamic_texture_workaround = driQueryOptionb(&userInitOptions, "dynamic_texture_workaround"); ctx->base.shader_inline_constants = driQueryOptionb(&userInitOptions, "shader_inline_constants"); ctx->base.memfd_virtualsizelimit = driQueryOptioni(&userInitOptions, "texture_memory_limit"); + ctx->base.override_vram_size = driQueryOptioni(&userInitOptions, "override_vram_size"); driDestroyOptionCache(&userInitOptions); driDestroyOptionInfo(&defaultInitOptions); -- 2.7.4