panfrost: Allocate a state uploader
We'd like to uploader some descriptors at CSO time. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6440>
This commit is contained in:
parent
da677a438f
commit
8c14482cdf
|
@ -1159,6 +1159,7 @@ panfrost_destroy(struct pipe_context *pipe)
|
|||
|
||||
util_unreference_framebuffer_state(&panfrost->pipe_framebuffer);
|
||||
u_upload_destroy(pipe->stream_uploader);
|
||||
u_upload_destroy(panfrost->state_uploader);
|
||||
|
||||
ralloc_free(pipe);
|
||||
}
|
||||
|
@ -1427,7 +1428,9 @@ panfrost_create_context(struct pipe_screen *screen, void *priv, unsigned flags)
|
|||
|
||||
gallium->stream_uploader = u_upload_create_default(gallium);
|
||||
gallium->const_uploader = gallium->stream_uploader;
|
||||
assert(gallium->stream_uploader);
|
||||
|
||||
ctx->state_uploader = u_upload_create(gallium, 4096,
|
||||
PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_DYNAMIC, 0);
|
||||
|
||||
/* All of our GPUs support ES mode. Midgard supports additionally
|
||||
* QUADS/QUAD_STRIPS/POLYGON. Bifrost supports just QUADS. */
|
||||
|
|
|
@ -96,6 +96,11 @@ struct panfrost_context {
|
|||
/* Gallium context */
|
||||
struct pipe_context base;
|
||||
|
||||
/* Upload manager for small resident GPU-internal data structures, like
|
||||
* sampler descriptors. We use an upload manager since the minimum BO
|
||||
* size from the kernel is 4kb */
|
||||
struct u_upload_mgr *state_uploader;
|
||||
|
||||
/* Bound job batch and map of panfrost_batch_key to job batches */
|
||||
struct panfrost_batch *batch;
|
||||
struct hash_table *batches;
|
||||
|
|
Loading…
Reference in New Issue