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) {
|
||||
lp_jit_buffer_from_pipe_const(&setup->fs.current.jit_resources.constants[i],
|
||||
&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;
|
||||
}
|
||||
}
|
||||
|
@@ -4198,6 +4198,7 @@ llvmpipe_set_constant_buffer(struct pipe_context *pipe,
|
||||
debug_printf("Illegal set constant without bind flag\n");
|
||||
constants->buffer->bind |= PIPE_BIND_CONSTANT_BUFFER;
|
||||
}
|
||||
llvmpipe_flush_resource(pipe, constants->buffer, 0, true, true, false, "set_constant_buffer");
|
||||
}
|
||||
|
||||
switch (shader) {
|
||||
|
@@ -837,6 +837,7 @@ llvmpipe_is_resource_referenced(struct pipe_context *pipe,
|
||||
if (!(presource->bind & (PIPE_BIND_DEPTH_STENCIL |
|
||||
PIPE_BIND_RENDER_TARGET |
|
||||
PIPE_BIND_SAMPLER_VIEW |
|
||||
PIPE_BIND_CONSTANT_BUFFER |
|
||||
PIPE_BIND_SHADER_BUFFER |
|
||||
PIPE_BIND_SHADER_IMAGE)))
|
||||
return LP_UNREFERENCED;
|
||||
|
Reference in New Issue
Block a user