diff options
author | Eric Anholt <[email protected]> | 2014-10-18 12:50:05 +0100 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2014-10-19 08:44:56 +0100 |
commit | 6212d2402df4ad0658cbb98ce889e35ef5f32fa3 (patch) | |
tree | 23b3d5128082694cf8c62c2f62ff779475f0b776 /src/gallium/drivers/vc4/vc4_resource.h | |
parent | 572fba95e4cd85aebdde9bd757c17f719af2af04 (diff) |
vc4: Translate 4-byte index buffers to 2 bytes.
Fixes assertion failures in 14 piglit tests (half of which now pass).
Diffstat (limited to 'src/gallium/drivers/vc4/vc4_resource.h')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_resource.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/gallium/drivers/vc4/vc4_resource.h b/src/gallium/drivers/vc4/vc4_resource.h index 7cc16a4540b..90b58e137df 100644 --- a/src/gallium/drivers/vc4/vc4_resource.h +++ b/src/gallium/drivers/vc4/vc4_resource.h @@ -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 */ |