mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 11:08:03 +02:00
zink: break out even more of zink_blit state saving
for reuse in upcoming clear refactoring Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9150>
This commit is contained in:
parent
ec54166a2b
commit
79861e3d88
2 changed files with 17 additions and 12 deletions
|
|
@ -210,18 +210,7 @@ zink_blit(struct pipe_context *pctx,
|
|||
if (info->dst.resource->target == PIPE_BUFFER)
|
||||
util_range_add(info->dst.resource, &dst->valid_buffer_range,
|
||||
info->dst.box.x, info->dst.box.x + info->dst.box.width);
|
||||
util_blitter_save_vertex_elements(ctx->blitter, ctx->element_state);
|
||||
util_blitter_save_viewport(ctx->blitter, ctx->viewport_states);
|
||||
|
||||
util_blitter_save_fragment_sampler_states(ctx->blitter,
|
||||
ctx->num_samplers[PIPE_SHADER_FRAGMENT],
|
||||
ctx->sampler_states[PIPE_SHADER_FRAGMENT]);
|
||||
util_blitter_save_fragment_sampler_views(ctx->blitter,
|
||||
ctx->num_sampler_views[PIPE_SHADER_FRAGMENT],
|
||||
ctx->sampler_views[PIPE_SHADER_FRAGMENT]);
|
||||
util_blitter_save_fragment_constant_buffer_slot(ctx->blitter, ctx->ubos[PIPE_SHADER_FRAGMENT]);
|
||||
util_blitter_save_vertex_buffer_slot(ctx->blitter, ctx->buffers);
|
||||
zink_blit_begin(ctx, ZINK_BLIT_SAVE_FB | ZINK_BLIT_SAVE_FS);
|
||||
zink_blit_begin(ctx, ZINK_BLIT_SAVE_FB | ZINK_BLIT_SAVE_FS | ZINK_BLIT_SAVE_TEXTURES);
|
||||
|
||||
util_blitter_blit(ctx->blitter, info);
|
||||
}
|
||||
|
|
@ -230,6 +219,10 @@ zink_blit(struct pipe_context *pctx,
|
|||
void
|
||||
zink_blit_begin(struct zink_context *ctx, enum zink_blit_flags flags)
|
||||
{
|
||||
util_blitter_save_vertex_elements(ctx->blitter, ctx->element_state);
|
||||
util_blitter_save_viewport(ctx->blitter, ctx->viewport_states);
|
||||
|
||||
util_blitter_save_vertex_buffer_slot(ctx->blitter, ctx->buffers);
|
||||
util_blitter_save_vertex_shader(ctx->blitter, ctx->gfx_stages[PIPE_SHADER_VERTEX]);
|
||||
util_blitter_save_tessctrl_shader(ctx->blitter, ctx->gfx_stages[PIPE_SHADER_TESS_CTRL]);
|
||||
util_blitter_save_tesseval_shader(ctx->blitter, ctx->gfx_stages[PIPE_SHADER_TESS_EVAL]);
|
||||
|
|
@ -238,6 +231,7 @@ zink_blit_begin(struct zink_context *ctx, enum zink_blit_flags flags)
|
|||
util_blitter_save_so_targets(ctx->blitter, ctx->num_so_targets, ctx->so_targets);
|
||||
|
||||
if (flags & ZINK_BLIT_SAVE_FS) {
|
||||
util_blitter_save_fragment_constant_buffer_slot(ctx->blitter, ctx->ubos[PIPE_SHADER_FRAGMENT]);
|
||||
util_blitter_save_blend(ctx->blitter, ctx->gfx_pipeline_state.blend_state);
|
||||
util_blitter_save_depth_stencil_alpha(ctx->blitter, ctx->dsa_state);
|
||||
util_blitter_save_stencil_ref(ctx->blitter, &ctx->stencil_ref);
|
||||
|
|
@ -250,4 +244,14 @@ zink_blit_begin(struct zink_context *ctx, enum zink_blit_flags flags)
|
|||
|
||||
if (flags & ZINK_BLIT_SAVE_FB)
|
||||
util_blitter_save_framebuffer(ctx->blitter, &ctx->fb_state);
|
||||
|
||||
|
||||
if (flags & ZINK_BLIT_SAVE_TEXTURES) {
|
||||
util_blitter_save_fragment_sampler_states(ctx->blitter,
|
||||
ctx->num_samplers[PIPE_SHADER_FRAGMENT],
|
||||
ctx->sampler_states[PIPE_SHADER_FRAGMENT]);
|
||||
util_blitter_save_fragment_sampler_views(ctx->blitter,
|
||||
ctx->num_sampler_views[PIPE_SHADER_FRAGMENT],
|
||||
ctx->sampler_views[PIPE_SHADER_FRAGMENT]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ enum zink_blit_flags {
|
|||
ZINK_BLIT_NORMAL = 1 << 0,
|
||||
ZINK_BLIT_SAVE_FS = 1 << 1,
|
||||
ZINK_BLIT_SAVE_FB = 1 << 2,
|
||||
ZINK_BLIT_SAVE_TEXTURES = 1 << 3,
|
||||
};
|
||||
|
||||
struct zink_sampler_view {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue