diff --git a/src/gallium/auxiliary/util/u_threaded_context.c b/src/gallium/auxiliary/util/u_threaded_context.c index 5ec2851f002..08886de9d79 100644 --- a/src/gallium/auxiliary/util/u_threaded_context.c +++ b/src/gallium/auxiliary/util/u_threaded_context.c @@ -5452,6 +5452,9 @@ threaded_context_create(struct pipe_context *pipe, return NULL; } + /* drivers must set this */ + assert(pipe->screen->caps.prefer_real_buffer_in_constbuf0); + if (options) { /* this is unimplementable */ assert(!(options->parse_renderpass_info && options->driver_calls_flush_notify)); diff --git a/src/gallium/drivers/crocus/crocus_screen.c b/src/gallium/drivers/crocus/crocus_screen.c index 24c18b2a56f..556c2034796 100644 --- a/src/gallium/drivers/crocus/crocus_screen.c +++ b/src/gallium/drivers/crocus/crocus_screen.c @@ -235,6 +235,7 @@ crocus_init_screen_caps(struct crocus_screen *screen) u_init_pipe_screen_caps(&screen->base, 1); + caps->prefer_real_buffer_in_constbuf0 = true; caps->npot_textures = true; caps->anisotropic_filter = true; caps->occlusion_query = true; diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index 82669a18077..b83582de22e 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -232,6 +232,7 @@ d3d12_init_screen_caps(struct d3d12_screen *screen) u_init_pipe_screen_caps(&screen->base, caps->accelerated); + caps->prefer_real_buffer_in_constbuf0 = true; caps->npot_textures = true; /* D3D12 only supports dual-source blending for a single diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index 1e09a44a829..adffb9e93bb 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -365,6 +365,7 @@ fd_init_screen_caps(struct fd_screen *screen) /* this is probably not totally correct.. but it's a start: */ /* Supported features (boolean caps). */ + caps->prefer_real_buffer_in_constbuf0 = true; caps->npot_textures = true; caps->mixed_framebuffer_sizes = true; caps->anisotropic_filter = true; diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index 2e827533fe7..59d1fdb2672 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -285,6 +285,7 @@ iris_init_screen_caps(struct iris_screen *screen) const struct intel_device_info *devinfo = screen->devinfo; + caps->prefer_real_buffer_in_constbuf0 = true; caps->npot_textures = true; caps->anisotropic_filter = true; caps->occlusion_query = true; diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index 6f8bd868957..d09eabdec13 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -404,6 +404,7 @@ static void r600_init_screen_caps(struct r600_screen *rscreen) enum radeon_family family = rscreen->b.family; /* Supported features (boolean caps). */ + caps->prefer_real_buffer_in_constbuf0 = true; caps->npot_textures = true; caps->mixed_framebuffer_sizes = true; caps->mixed_color_depth_bits = true;