xref: /third_party/mesa3d/src/virtio/vulkan/vn_renderer_util.h (revision bf215546)
  • Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/mesa3d/src/virtio/vulkan/
1/*
2 * Copyright 2021 Google LLC
3 * SPDX-License-Identifier: MIT
4 */
5
6#ifndef VN_RENDERER_UTIL_H
7#define VN_RENDERER_UTIL_H
8
9#include "vn_renderer.h"
10
11/* for suballocations of short-lived shmems, not thread-safe */
12struct vn_renderer_shmem_pool {
13   size_t min_alloc_size;
14
15   struct vn_renderer_shmem *shmem;
16   size_t size;
17   size_t used;
18};
19
20static inline VkResult
21vn_renderer_submit_simple(struct vn_renderer *renderer,
22                          const void *cs_data,
23                          size_t cs_size)
24{
25   const struct vn_renderer_submit submit = {
26      .batches =
27         &(const struct vn_renderer_submit_batch){
28            .cs_data = cs_data,
29            .cs_size = cs_size,
30         },
31      .batch_count = 1,
32   };
33   return vn_renderer_submit(renderer, &submit);
34}
35
36VkResult
37vn_renderer_submit_simple_sync(struct vn_renderer *renderer,
38                               const void *cs_data,
39                               size_t cs_size);
40
41void
42vn_renderer_shmem_pool_init(struct vn_renderer *renderer,
43                            struct vn_renderer_shmem_pool *pool,
44                            size_t min_alloc_size);
45
46void
47vn_renderer_shmem_pool_fini(struct vn_renderer *renderer,
48                            struct vn_renderer_shmem_pool *pool);
49
50struct vn_renderer_shmem *
51vn_renderer_shmem_pool_alloc(struct vn_renderer *renderer,
52                             struct vn_renderer_shmem_pool *pool,
53                             size_t size,
54                             size_t *out_offset);
55
56#endif /* VN_RENDERER_UTIL_H */
57

Indexes created Thu Nov 07 10:32:03 CST 2024