*
* This is used to track when we need to update this shadow resource
* from its parent in the case of GL_TEXTURE_BASE_LEVEL (which we
- * can't support in hardware).
+ * can't support in hardware) or GL_UNSIGNED_INTEGER index buffers.
*/
uint64_t writes;
+
+ /**
+ * Resource containing the non-GL_TEXTURE_BASE_LEVEL-rebased texture
+ * contents, or the 4-byte index buffer.
+ *
+ * If the parent is set for an texture, then this resource is actually
+ * the texture contents just starting from the sampler_view's
+ * first_level.
+ *
+ * If the parent is set for an index index buffer, then this resource
+ * is actually a shadow containing a 2-byte index buffer starting from
+ * the ib's offset.
+ */
struct pipe_resource *shadow_parent;
};
const struct pipe_resource *tmpl);
void vc4_update_shadow_baselevel_texture(struct pipe_context *pctx,
struct pipe_sampler_view *view);
+void vc4_update_shadow_index_buffer(struct pipe_context *pctx,
+ const struct pipe_index_buffer *ib);
#endif /* VC4_RESOURCE_H */