Lines Matching refs:ctx
120 create_framebuffer_imageless(struct zink_context *ctx, struct zink_framebuffer_state *state)
122 struct zink_screen *screen = zink_screen(ctx->base.screen);
123 struct zink_framebuffer *fb = rzalloc(ctx, struct zink_framebuffer);
141 zink_use_dummy_attachments(const struct zink_context *ctx)
143 return ctx->disable_color_writes && zink_screen(ctx->base.screen)->driver_workarounds.color_write_missing;
147 zink_get_framebuffer(struct zink_context *ctx)
149 assert(zink_screen(ctx->base.screen)->info.have_KHR_imageless_framebuffer);
152 state.num_attachments = ctx->fb_state.nr_cbufs;
154 const unsigned cresolve_offset = ctx->fb_state.nr_cbufs + !!ctx->fb_state.zsbuf;
156 for (int i = 0; i < ctx->fb_state.nr_cbufs; i++) {
157 struct pipe_surface *psurf = ctx->fb_state.cbufs[i];
158 if (!psurf || zink_use_dummy_attachments(ctx))
159 psurf = ctx->dummy_surface[util_logbase2_ceil(ctx->gfx_pipeline_state.rast_samples+1)];
172 if (ctx->fb_state.zsbuf) {
173 struct pipe_surface *psurf = ctx->fb_state.zsbuf;
189 state.width = MAX2(ctx->fb_state.width, 1);
190 state.height = MAX2(ctx->fb_state.height, 1);
191 state.layers = MAX2(zink_framebuffer_get_num_layers(&ctx->fb_state), 1) - 1;
192 state.samples = ctx->fb_state.samples - 1;
195 struct hash_entry *entry = _mesa_hash_table_search(&ctx->framebuffer_cache, &state);
199 fb = create_framebuffer_imageless(ctx, &state);
200 _mesa_hash_table_insert(&ctx->framebuffer_cache, &fb->state, fb);
212 zink_update_framebuffer_state(struct zink_context *ctx)
218 struct zink_framebuffer *fb = zink_get_framebuffer(ctx);
219 ctx->fb_changed |= ctx->framebuffer != fb;
220 ctx->framebuffer = fb;