util/hash_table: Rework the API to know about hashing
[mesa.git] / src / gallium / drivers / vc4 / vc4_resource.h
index 7cc16a4540bde5ba90369cd3a2b262201a547b49..90b58e137dffb3a727c7d8d4ef1225b42bd31413 100644 (file)
@@ -67,9 +67,22 @@ struct vc4_resource {
          *
          * 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;
 };
 
@@ -97,5 +110,7 @@ struct pipe_resource *vc4_resource_create(struct pipe_screen *pscreen,
                                           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 */