Lines Matching refs:rsc
147 * If so, it no longer "owns" it's rsc->track, and so should not
148 * invalidate when the rsc is destroyed.
196 pending(struct fd_resource *rsc, bool write)
199 if (rsc->track->write_batch)
203 if (write && rsc->track->batch_mask)
206 if (rsc->stencil && pending(rsc->stencil, write))
213 resource_busy(struct fd_resource *rsc, unsigned op)
215 return fd_bo_cpu_prep(rsc->bo, NULL, op | FD_BO_PREP_NOSYNC) != 0;
218 int __fd_resource_wait(struct fd_context *ctx, struct fd_resource *rsc,
220 #define fd_resource_wait(ctx, rsc, op) \
221 __fd_resource_wait(ctx, rsc, op, __func__)
224 fd_resource_lock(struct fd_resource *rsc)
226 simple_mtx_lock(&rsc->lock);
230 fd_resource_unlock(struct fd_resource *rsc)
232 simple_mtx_unlock(&rsc->lock);
240 struct fd_resource *rsc = fd_resource(prsc);
244 if (likely(rsc->dirty & usage))
246 fd_resource_lock(rsc);
247 or_mask(rsc->dirty, usage);
248 fd_resource_unlock(rsc);
271 fd_resource_slice(struct fd_resource *rsc, unsigned level)
273 assert(level <= rsc->b.b.last_level);
274 return &rsc->layout.slices[level];
278 fd_resource_layer_stride(struct fd_resource *rsc, unsigned level)
280 return fdl_layer_stride(&rsc->layout, level);
285 fd_resource_pitch(struct fd_resource *rsc, unsigned level)
287 if (is_a2xx(fd_screen(rsc->b.b.screen)))
288 return fdl2_pitch(&rsc->layout, level);
290 return fdl_pitch(&rsc->layout, level);
295 fd_resource_offset(struct fd_resource *rsc, unsigned level, unsigned layer)
297 uint32_t offset = fdl_surface_offset(&rsc->layout, level, layer);
298 assert(offset < fd_bo_size(rsc->bo));
303 fd_resource_ubwc_offset(struct fd_resource *rsc, unsigned level, unsigned layer)
305 uint32_t offset = fdl_ubwc_offset(&rsc->layout, level, layer);
306 assert(offset < fd_bo_size(rsc->bo));
327 fd_resource_tile_mode_desc(const struct fd_resource *rsc, int level)
329 return fdl_tile_mode_desc(&rsc->layout, level);
333 fd_resource_ubwc_enabled(struct fd_resource *rsc, int level)
335 return fdl_ubwc_enabled(&rsc->layout, level);
350 uint32_t fd_setup_slices(struct fd_resource *rsc);
362 struct fd_resource *rsc,
364 void fd_resource_dump(struct fd_resource *rsc, const char *name);
369 fd_batch_references_resource(struct fd_batch *batch, struct fd_resource *rsc)
371 return rsc->track->batch_mask & (1 << batch->idx);
375 fd_batch_write_prep(struct fd_batch *batch, struct fd_resource *rsc) assert_dt
377 if (unlikely(rsc->needs_ubwc_clear)) {
378 batch->ctx->clear_ubwc(batch, rsc);
379 rsc->needs_ubwc_clear = false;
385 struct fd_resource *rsc) assert_dt
391 if (unlikely(!fd_batch_references_resource(batch, rsc)))
392 fd_batch_resource_read_slowpath(batch, rsc);