mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-21 14:20:29 +01:00
venus: add vn_renderer_util.[ch]
Move helpers built on top of vn_renderer.h to the new files. Signed-off-by: Chia-I Wu <olvaffe@gmail.com> Reviewed-by: Ryan Neph <ryanneph@google.com> Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14179>
This commit is contained in:
parent
ee283c49b7
commit
511fb6b8e9
5 changed files with 79 additions and 55 deletions
|
|
@ -47,6 +47,7 @@ libvn_files = files(
|
|||
'vn_queue.c',
|
||||
'vn_render_pass.c',
|
||||
'vn_ring.c',
|
||||
'vn_renderer_util.c',
|
||||
'vn_renderer_virtgpu.c',
|
||||
'vn_renderer_vtest.c',
|
||||
)
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include "vn_cs.h"
|
||||
#include "vn_renderer.h"
|
||||
#include "vn_renderer_util.h"
|
||||
#include "vn_ring.h"
|
||||
|
||||
/* require and request at least Vulkan 1.1 at both instance and device levels
|
||||
|
|
|
|||
|
|
@ -264,22 +264,6 @@ vn_renderer_submit(struct vn_renderer *renderer,
|
|||
return renderer->ops.submit(renderer, submit);
|
||||
}
|
||||
|
||||
static inline VkResult
|
||||
vn_renderer_submit_simple(struct vn_renderer *renderer,
|
||||
const void *cs_data,
|
||||
size_t cs_size)
|
||||
{
|
||||
const struct vn_renderer_submit submit = {
|
||||
.batches =
|
||||
&(const struct vn_renderer_submit_batch){
|
||||
.cs_data = cs_data,
|
||||
.cs_size = cs_size,
|
||||
},
|
||||
.batch_count = 1,
|
||||
};
|
||||
return vn_renderer_submit(renderer, &submit);
|
||||
}
|
||||
|
||||
static inline VkResult
|
||||
vn_renderer_wait(struct vn_renderer *renderer,
|
||||
const struct vn_renderer_wait *wait)
|
||||
|
|
@ -466,43 +450,4 @@ vn_renderer_sync_write(struct vn_renderer *renderer,
|
|||
return renderer->sync_ops.write(renderer, sync, val);
|
||||
}
|
||||
|
||||
static inline VkResult
|
||||
vn_renderer_submit_simple_sync(struct vn_renderer *renderer,
|
||||
const void *cs_data,
|
||||
size_t cs_size)
|
||||
{
|
||||
struct vn_renderer_sync *sync;
|
||||
VkResult result =
|
||||
vn_renderer_sync_create(renderer, 0, VN_RENDERER_SYNC_BINARY, &sync);
|
||||
if (result != VK_SUCCESS)
|
||||
return result;
|
||||
|
||||
const struct vn_renderer_submit submit = {
|
||||
.batches =
|
||||
&(const struct vn_renderer_submit_batch){
|
||||
.cs_data = cs_data,
|
||||
.cs_size = cs_size,
|
||||
.sync_queue_cpu = true,
|
||||
.syncs = &sync,
|
||||
.sync_values = &(const uint64_t){ 1 },
|
||||
.sync_count = 1,
|
||||
},
|
||||
.batch_count = 1,
|
||||
};
|
||||
const struct vn_renderer_wait wait = {
|
||||
.timeout = UINT64_MAX,
|
||||
.syncs = &sync,
|
||||
.sync_values = &(const uint64_t){ 1 },
|
||||
.sync_count = 1,
|
||||
};
|
||||
|
||||
result = vn_renderer_submit(renderer, &submit);
|
||||
if (result == VK_SUCCESS)
|
||||
result = vn_renderer_wait(renderer, &wait);
|
||||
|
||||
vn_renderer_sync_destroy(renderer, sync);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif /* VN_RENDERER_H */
|
||||
|
|
|
|||
45
src/virtio/vulkan/vn_renderer_util.c
Normal file
45
src/virtio/vulkan/vn_renderer_util.c
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
* Copyright 2021 Google LLC
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include "vn_renderer_util.h"
|
||||
|
||||
VkResult
|
||||
vn_renderer_submit_simple_sync(struct vn_renderer *renderer,
|
||||
const void *cs_data,
|
||||
size_t cs_size)
|
||||
{
|
||||
struct vn_renderer_sync *sync;
|
||||
VkResult result =
|
||||
vn_renderer_sync_create(renderer, 0, VN_RENDERER_SYNC_BINARY, &sync);
|
||||
if (result != VK_SUCCESS)
|
||||
return result;
|
||||
|
||||
const struct vn_renderer_submit submit = {
|
||||
.batches =
|
||||
&(const struct vn_renderer_submit_batch){
|
||||
.cs_data = cs_data,
|
||||
.cs_size = cs_size,
|
||||
.sync_queue_cpu = true,
|
||||
.syncs = &sync,
|
||||
.sync_values = &(const uint64_t){ 1 },
|
||||
.sync_count = 1,
|
||||
},
|
||||
.batch_count = 1,
|
||||
};
|
||||
const struct vn_renderer_wait wait = {
|
||||
.timeout = UINT64_MAX,
|
||||
.syncs = &sync,
|
||||
.sync_values = &(const uint64_t){ 1 },
|
||||
.sync_count = 1,
|
||||
};
|
||||
|
||||
result = vn_renderer_submit(renderer, &submit);
|
||||
if (result == VK_SUCCESS)
|
||||
result = vn_renderer_wait(renderer, &wait);
|
||||
|
||||
vn_renderer_sync_destroy(renderer, sync);
|
||||
|
||||
return result;
|
||||
}
|
||||
32
src/virtio/vulkan/vn_renderer_util.h
Normal file
32
src/virtio/vulkan/vn_renderer_util.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* Copyright 2021 Google LLC
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#ifndef VN_RENDERER_UTIL_H
|
||||
#define VN_RENDERER_UTIL_H
|
||||
|
||||
#include "vn_renderer.h"
|
||||
|
||||
static inline VkResult
|
||||
vn_renderer_submit_simple(struct vn_renderer *renderer,
|
||||
const void *cs_data,
|
||||
size_t cs_size)
|
||||
{
|
||||
const struct vn_renderer_submit submit = {
|
||||
.batches =
|
||||
&(const struct vn_renderer_submit_batch){
|
||||
.cs_data = cs_data,
|
||||
.cs_size = cs_size,
|
||||
},
|
||||
.batch_count = 1,
|
||||
};
|
||||
return vn_renderer_submit(renderer, &submit);
|
||||
}
|
||||
|
||||
VkResult
|
||||
vn_renderer_submit_simple_sync(struct vn_renderer *renderer,
|
||||
const void *cs_data,
|
||||
size_t cs_size);
|
||||
|
||||
#endif /* VN_RENDERER_UTIL_H */
|
||||
Loading…
Add table
Reference in a new issue