lavapipe: add a stream uploader to rendering_state and queue objects

not currently used

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15457>
This commit is contained in:
Mike Blumenkrantz
2022-03-18 09:47:26 -04:00
committed by Marge Bot
parent de01a47b1c
commit 526e898dfc
3 changed files with 6 additions and 0 deletions

View File

@@ -1492,6 +1492,7 @@ lvp_queue_init(struct lvp_device *device, struct lvp_queue *queue,
queue->cso = cso_create_context(queue->ctx, CSO_NO_VBUF);
util_queue_init(&queue->queue, "lavapipe", 8, 1, UTIL_QUEUE_INIT_RESIZE_IF_FULL, device);
p_atomic_set(&queue->count, 0);
queue->uploader = u_upload_create(queue->ctx, 1024 * 1024, PIPE_BIND_CONSTANT_BUFFER, PIPE_USAGE_STREAM, 0);
return VK_SUCCESS;
}
@@ -1502,6 +1503,7 @@ lvp_queue_finish(struct lvp_queue *queue)
util_queue_finish(&queue->queue);
util_queue_destroy(&queue->queue);
u_upload_destroy(queue->uploader);
cso_destroy_context(queue->cso);
queue->ctx->destroy(queue->ctx);
simple_mtx_destroy(&queue->last_lock);

View File

@@ -59,6 +59,7 @@ enum gs_output {
struct rendering_state {
struct pipe_context *pctx;
struct u_upload_mgr *uploader;
struct cso_context *cso;
bool blend_dirty;
@@ -4254,6 +4255,7 @@ VkResult lvp_execute_cmds(struct lvp_device *device,
struct rendering_state *state = queue->state;
memset(state, 0, sizeof(*state));
state->pctx = queue->ctx;
state->uploader = queue->uploader;
state->cso = queue->cso;
state->blend_dirty = true;
state->dsa_dirty = true;

View File

@@ -34,6 +34,7 @@
#include "util/u_dynarray.h"
#include "util/simple_mtx.h"
#include "util/u_queue.h"
#include "util/u_upload_mgr.h"
#include "compiler/shader_enums.h"
#include "pipe/p_screen.h"
@@ -163,6 +164,7 @@ struct lvp_queue {
struct lvp_device * device;
struct pipe_context *ctx;
struct cso_context *cso;
struct u_upload_mgr *uploader;
bool shutdown;
uint64_t timeline;
struct util_queue queue;