llvmpipe: flush/reference fs ubos on bind
Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828>
This commit is contained in:

committed by
Marge Bot

parent
b9c588b47b
commit
83a7a88d6b
@@ -1065,6 +1065,13 @@ try_update_scene_state(struct lp_setup_context *setup)
|
|||||||
for (unsigned i = 0; i < ARRAY_SIZE(setup->constants); ++i) {
|
for (unsigned i = 0; i < ARRAY_SIZE(setup->constants); ++i) {
|
||||||
lp_jit_buffer_from_pipe_const(&setup->fs.current.jit_resources.constants[i],
|
lp_jit_buffer_from_pipe_const(&setup->fs.current.jit_resources.constants[i],
|
||||||
&setup->constants[i].current, setup->pipe->screen);
|
&setup->constants[i].current, setup->pipe->screen);
|
||||||
|
if (setup->constants[i].current.buffer &&
|
||||||
|
!lp_scene_add_resource_reference(scene,
|
||||||
|
setup->constants[i].current.buffer,
|
||||||
|
new_scene, false)) {
|
||||||
|
assert(!new_scene);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
setup->dirty |= LP_SETUP_NEW_FS;
|
setup->dirty |= LP_SETUP_NEW_FS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -4198,6 +4198,7 @@ llvmpipe_set_constant_buffer(struct pipe_context *pipe,
|
|||||||
debug_printf("Illegal set constant without bind flag\n");
|
debug_printf("Illegal set constant without bind flag\n");
|
||||||
constants->buffer->bind |= PIPE_BIND_CONSTANT_BUFFER;
|
constants->buffer->bind |= PIPE_BIND_CONSTANT_BUFFER;
|
||||||
}
|
}
|
||||||
|
llvmpipe_flush_resource(pipe, constants->buffer, 0, true, true, false, "set_constant_buffer");
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (shader) {
|
switch (shader) {
|
||||||
|
@@ -837,6 +837,7 @@ llvmpipe_is_resource_referenced(struct pipe_context *pipe,
|
|||||||
if (!(presource->bind & (PIPE_BIND_DEPTH_STENCIL |
|
if (!(presource->bind & (PIPE_BIND_DEPTH_STENCIL |
|
||||||
PIPE_BIND_RENDER_TARGET |
|
PIPE_BIND_RENDER_TARGET |
|
||||||
PIPE_BIND_SAMPLER_VIEW |
|
PIPE_BIND_SAMPLER_VIEW |
|
||||||
|
PIPE_BIND_CONSTANT_BUFFER |
|
||||||
PIPE_BIND_SHADER_BUFFER |
|
PIPE_BIND_SHADER_BUFFER |
|
||||||
PIPE_BIND_SHADER_IMAGE)))
|
PIPE_BIND_SHADER_IMAGE)))
|
||||||
return LP_UNREFERENCED;
|
return LP_UNREFERENCED;
|
||||||
|
Reference in New Issue
Block a user