mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-25 05:50:25 +01:00
freedreno: fix corrupted fb state
Inc3d9f29bwe allowed ctx->batch to be null, and started tracking the current framebuffer state in fd_context. But the existing logic in fd_blitter_pipe_begin() would, if !ctx->batch, set null fb state to be restored after blit. Which broke the world of deqp (and probably other things) Fixes:c3d9f29b78freedreno: allocate ctx's batch on demand Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
parent
5bb96bf73a
commit
ef6d15f8a8
2 changed files with 5 additions and 2 deletions
|
|
@ -1085,8 +1085,7 @@ fd_blitter_pipe_begin(struct fd_context *ctx, bool render_cond, bool discard,
|
|||
util_blitter_save_depth_stencil_alpha(ctx->blitter, ctx->zsa);
|
||||
util_blitter_save_stencil_ref(ctx->blitter, &ctx->stencil_ref);
|
||||
util_blitter_save_sample_mask(ctx->blitter, ctx->sample_mask);
|
||||
util_blitter_save_framebuffer(ctx->blitter,
|
||||
ctx->batch ? &ctx->batch->framebuffer : NULL);
|
||||
util_blitter_save_framebuffer(ctx->blitter, &ctx->framebuffer);
|
||||
util_blitter_save_fragment_sampler_states(ctx->blitter,
|
||||
ctx->tex[PIPE_SHADER_FRAGMENT].num_samplers,
|
||||
(void **)ctx->tex[PIPE_SHADER_FRAGMENT].samplers);
|
||||
|
|
|
|||
|
|
@ -211,6 +211,10 @@ fd_set_framebuffer_state(struct pipe_context *pctx,
|
|||
struct fd_context *ctx = fd_context(pctx);
|
||||
struct pipe_framebuffer_state *cso;
|
||||
|
||||
DBG("%ux%u, %u layers, %u samples",
|
||||
framebuffer->width, framebuffer->height,
|
||||
framebuffer->layers, framebuffer->samples);
|
||||
|
||||
if (ctx->screen->reorder) {
|
||||
struct fd_batch *old_batch = NULL;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue