4 #define WIN32_LEAN_AND_MEAN
5 #define VK_USE_PLATFORM_WIN32_KHR
6 #define VKInstWin32Funcs VKFunc(CreateWin32SurfaceKHR)
8 #define VK_USE_PLATFORM_ANDROID_KHR
9 #define VKInstXLibFuncs VKFunc(CreateAndroidSurfaceKHR)
10#elif defined(__linux__)
12 #define VK_USE_PLATFORM_XLIB_KHR
13 #define VKInstXLibFuncs VKFunc(CreateXlibSurfaceKHR)
15 #define VK_USE_PLATFORM_XCB_KHR
16 #define VKInstXCBFuncs VKFunc(CreateXcbSurfaceKHR)
19 #define VK_USE_PLATFORM_WAYLAND_KHR
20 #define VKInstWaylandFuncs VKFunc(CreateWaylandSurfaceKHR)
22#elif defined(__FreeBSD__) || defined(__OpenBSD__)
23 #define VK_USE_PLATFORM_XLIB_KHR
24 #define VKInstXLibFuncs VKFunc(CreateXlibSurfaceKHR)
26 #define VK_USE_PLATFORM_XCB_KHR
27 #define VKInstXCBFuncs VKFunc(CreateXcbSurfaceKHR)
30#define VK_NO_PROTOTYPES
33#if defined(_MSC_VER) && !defined(UINT64_MAX)
34#define UINT64_MAX _UI64_MAX
36#define _UI64_MAX 0xffffffffffffffffui64
40#ifndef VKInstWin32Funcs
41#define VKInstWin32Funcs
43#ifndef VKInstXLibFuncs
44#define VKInstXLibFuncs
49#ifndef VKInstWaylandFuncs
50#define VKInstWaylandFuncs
52#define VKInstArchFuncs VKInstWin32Funcs VKInstXLibFuncs VKInstXCBFuncs VKInstWaylandFuncs
54#ifdef VK_EXT_debug_utils
56 VKFunc(SetDebugUtilsObjectNameEXT)
63 VKFunc(EnumerateInstanceLayerProperties) \
64 VKFunc(EnumerateInstanceExtensionProperties) \
65 VKFunc(CreateInstance)
69 VKFunc(EnumeratePhysicalDevices) \
70 VKFunc(EnumerateDeviceExtensionProperties) \
71 VKFunc(GetPhysicalDeviceProperties) \
72 VKFunc(GetPhysicalDeviceQueueFamilyProperties) \
73 VKFunc(GetPhysicalDeviceSurfaceSupportKHR) \
74 VKFunc(GetPhysicalDeviceSurfaceFormatsKHR) \
75 VKFunc(GetPhysicalDeviceSurfacePresentModesKHR) \
76 VKFunc(GetPhysicalDeviceSurfaceCapabilitiesKHR) \
77 VKFunc(GetPhysicalDeviceMemoryProperties) \
78 VKFunc(GetPhysicalDeviceFormatProperties) \
79 VKFunc(GetPhysicalDeviceFeatures) \
80 VKFunc(DestroySurfaceKHR) \
81 VKFunc(CreateDevice) \
82 VKFunc(DestroyInstance) \
88 VKFunc(AcquireNextImageKHR) \
89 VKFunc(QueuePresentKHR) \
90 VKFunc(CreateSwapchainKHR) \
91 VKFunc(GetSwapchainImagesKHR) \
92 VKFunc(DestroySwapchainKHR) \
93 VKFunc(CmdBeginRenderPass) \
94 VKFunc(CmdEndRenderPass) \
95 VKFunc(CmdBindPipeline) \
96 VKFunc(CmdDrawIndexedIndirect) \
98 VKFunc(CmdDrawIndexed) \
99 VKFunc(CmdSetViewport) \
100 VKFunc(CmdSetScissor) \
101 VKFunc(CmdBindDescriptorSets) \
102 VKFunc(CmdBindIndexBuffer) \
103 VKFunc(CmdBindVertexBuffers) \
104 VKFunc(CmdPushConstants) \
105 VKFunc(CmdPushDescriptorSetKHR) \
106 VKFunc(CmdClearAttachments) \
107 VKFunc(CmdClearColorImage) \
108 VKFunc(CmdClearDepthStencilImage) \
109 VKFunc(CmdCopyImage) \
110 VKFunc(CmdCopyBuffer) \
111 VKFunc(CmdCopyImageToBuffer) \
112 VKFunc(CmdCopyBufferToImage) \
113 VKFunc(CmdBlitImage) \
114 VKFunc(CmdPipelineBarrier) \
115 VKFunc(CmdSetEvent) \
116 VKFunc(CmdResetEvent) \
117 VKFunc(CmdWaitEvents) \
118 VKFunc(CreateDescriptorSetLayout) \
119 VKFunc(DestroyDescriptorSetLayout) \
120 VKFunc(CreatePipelineLayout) \
121 VKFunc(DestroyPipelineLayout) \
122 VKFunc(CreateShaderModule) \
123 VKFunc(DestroyShaderModule) \
124 VKFunc(CreateGraphicsPipelines) \
125 VKFunc(DestroyPipeline) \
126 VKFunc(CreatePipelineCache) \
127 VKFunc(GetPipelineCacheData) \
128 VKFunc(DestroyPipelineCache) \
129 VKFunc(QueueSubmit) \
130 VKFunc(QueueWaitIdle) \
131 VKFunc(DeviceWaitIdle) \
132 VKFunc(BeginCommandBuffer) \
133 VKFunc(ResetCommandBuffer) \
134 VKFunc(EndCommandBuffer) \
135 VKFunc(DestroyDevice) \
136 VKFunc(GetDeviceQueue) \
137 VKFunc(GetBufferMemoryRequirements) \
138 VKFunc(GetImageMemoryRequirements) \
139 VKFunc(GetImageMemoryRequirements2KHR) \
140 VKFunc(GetImageSubresourceLayout) \
141 VKFunc(CreateFramebuffer) \
142 VKFunc(DestroyFramebuffer) \
143 VKFunc(CreateCommandPool) \
144 VKFunc(ResetCommandPool) \
145 VKFunc(DestroyCommandPool) \
146 VKFunc(CreateDescriptorPool) \
147 VKFunc(ResetDescriptorPool) \
148 VKFunc(DestroyDescriptorPool) \
149 VKFunc(AllocateDescriptorSets) \
150 VKFunc(CreateSampler) \
151 VKFunc(DestroySampler) \
152 VKFunc(CreateImage) \
153 VKFunc(DestroyImage) \
154 VKFunc(CreateBuffer) \
155 VKFunc(DestroyBuffer) \
156 VKFunc(AllocateMemory) \
158 VKFunc(BindBufferMemory) \
159 VKFunc(BindImageMemory) \
161 VKFunc(FlushMappedMemoryRanges) \
162 VKFunc(UnmapMemory) \
163 VKFunc(UpdateDescriptorSets) \
164 VKFunc(AllocateCommandBuffers) \
165 VKFunc(FreeCommandBuffers) \
166 VKFunc(CreateRenderPass) \
167 VKFunc(DestroyRenderPass) \
168 VKFunc(CreateSemaphore) \
169 VKFunc(DestroySemaphore) \
170 VKFunc(CreateFence) \
171 VKFunc(GetFenceStatus) \
172 VKFunc(WaitForFences) \
173 VKFunc(ResetFences) \
174 VKFunc(DestroyFence) \
175 VKFunc(CreateImageView) \
176 VKFunc(DestroyImageView)
183 VKFunc(GetInstanceProcAddr)\
184 VKFunc(GetDeviceProcAddr)
187#ifdef VK_NO_PROTOTYPES
188 #define VKFunc(n) extern PFN_vk##n vk##n;
197#define vkallocationcb NULL
199#define VkAssert(f) do {VkResult err = f; if (err) Sys_Error("%s == %s", #f, VK_VKErrorToString(err)); } while(0)
200#define VkWarnAssert(f) do {VkResult err = f; if (err) Con_Printf("%s == %s\n", #f, VK_VKErrorToString(err)); } while(0)
203#define VkWarnAssert(f) f
269#define VQ_ALTRENDER 2
270#define VQ_ALTRENDER_COUNT 16
284#ifdef VK_KHR_fragment_shading_rate
302#define ACQUIRELIMIT 8
384#define RP_DEPTHCLEAR 1
385#define RP_FULLCLEAR 2
386#define RP_DEPTHONLY 3
387#define RP_MULTISAMPLE (1u<<2)
388#define RP_PRESENTABLE (1u<<3)
389#define RP_FP16 (1u<<4)
462qboolean VK_LoadGLSL(
struct programshared_s *prog,
struct programpermu_s *permu,
int ver,
const char **precompilerconstants,
const char *
vert,
const char *tcs,
const char *tes,
const char *geom,
const char *frag,
qboolean noerrors,
vfsfile_t *blobfile);
465void VK_Submit_Work(VkCommandBuffer cmdbuf, VkSemaphore semwait,
VkPipelineStageFlags semwaitstagemask, VkSemaphore semsignal, VkFence fencesignal,
struct vkframe *presentframe,
struct vk_fencework *fencedwork);
493struct vk_shadowbuffer;
538void VK_UpdateFiltering (
image_t *imagelist,
int filtermip[3],
int filterpic[3],
int mipcap[2],
float lodbias,
float anis);
unsigned int width
Definition: bymorphed.h:4
unsigned int height
Definition: bymorphed.h:5
enum @13::coninfomode_e mode
Definition: com_phys_ode.c:695
cvar_t model
Definition: cl_main.c:153
void(QDECL *vgui_frame)(void)
entity_t * ent
Definition: com_mesh.c:717
vbo_t vbo
Definition: com_mesh.c:737
void dNearCallback * callback
Definition: com_phys_ode.c:655
unsigned char qbyte
Definition: common.h:127
intptr_t qintptr_t
Definition: common.h:38
image_t * image
Definition: gl_font.c:402
unsigned int vert[2]
Definition: gl_shadow.c:1318
GLsizei const void GLenum usage
Definition: gl_vidcommon.c:223
static EGLSurface EGLSurface EGLContext ctx
Definition: gl_videgl.c:47
struct @319::xidevinfo::@353 axis[2]
GLfloat GLfloat y
Definition: glquake.h:158
GLint GLenum type
Definition: glquake.h:157
GLint size
Definition: glquake.h:157
GLfloat x
Definition: glquake.h:158
GLfloat GLfloat GLfloat GLfloat w
Definition: glquake.h:158
GLsizei GLsizei GLcharARB * source
Definition: glquake.h:171
const char * desc
Definition: m_options.c:1101
enum backendmode_e backendmode_t
char ** data
Definition: p_script.c:63
shader_t * shader
Definition: r_2d.c:51
uploadfmt_t fmt
Definition: r_2d.c:48
texid_t tex
Definition: r_2d.c:52
unsigned short index_t
Definition: render.h:56
enum uploadfmt uploadfmt_t
uploadfmt
Definition: screen.h:96
static AL_API ALsizei n
Definition: snd_al.c:161
Definition: vulkan.h:1508
Definition: vulkan.h:1654
Definition: vulkan.h:2444
Definition: vulkan.h:2146
Definition: gl_model.h:133
Definition: gl_model.h:90
Definition: gl_model.h:972
Definition: vkrenderer.h:439
VkPipeline pipeline
Definition: vkrenderer.h:444
struct pipeline_s * next
Definition: vkrenderer.h:440
unsigned int flags
Definition: vkrenderer.h:442
unsigned int blendbits
Definition: vkrenderer.h:443
unsigned int permu
Definition: vkrenderer.h:441
Definition: vkrenderer.h:515
VkBuffer buf
Definition: vkrenderer.h:516
VkBufferUsageFlags usage
Definition: vkrenderer.h:520
vk_poolmem_t mem
Definition: vkrenderer.h:518
size_t size
Definition: vkrenderer.h:519
VkBuffer retbuf
Definition: vkrenderer.h:517
Definition: gl_model.h:320
Definition: vkrenderer.h:215
VkFormat vkformat
Definition: vkrenderer.h:222
uint32_t height
Definition: vkrenderer.h:224
VkImage image
Definition: vkrenderer.h:216
VkImageLayout layout
Definition: vkrenderer.h:220
uint32_t mipcount
Definition: vkrenderer.h:226
VkSampler sampler
Definition: vkrenderer.h:219
uint32_t layers
Definition: vkrenderer.h:225
uint32_t encoding
Definition: vkrenderer.h:227
uint32_t type
Definition: vkrenderer.h:228
uint32_t width
Definition: vkrenderer.h:223
vk_poolmem_t mem
Definition: vkrenderer.h:217
VkImageView view
Definition: vkrenderer.h:218
Definition: vkrenderer.h:207
size_t size
Definition: vkrenderer.h:210
struct vk_mempool_s * pool
Definition: vkrenderer.h:208
size_t offset
Definition: vkrenderer.h:211
VkDeviceMemory memory
Definition: vkrenderer.h:209
Definition: vkrenderer.h:260
vk_image_t colour
Definition: vkrenderer.h:263
struct vk_rendertarg face[6]
Definition: vkrenderer.h:264
uint32_t size
Definition: vkrenderer.h:261
image_t q_colour
Definition: vkrenderer.h:262
image_t q_depth
Definition: vkrenderer.h:262
vk_image_t depth
Definition: vkrenderer.h:263
Definition: vkrenderer.h:239
qboolean depthcleared
Definition: vkrenderer.h:250
vk_image_t depth
Definition: vkrenderer.h:242
qboolean firstuse
Definition: vkrenderer.h:254
vk_image_t mscolour
Definition: vkrenderer.h:242
qboolean externalimage
Definition: vkrenderer.h:255
VkRenderPassBeginInfo restartinfo
Definition: vkrenderer.h:252
uint32_t height
Definition: vkrenderer.h:247
image_t q_mscolour
Definition: vkrenderer.h:244
vk_image_t colour
Definition: vkrenderer.h:242
image_t q_depth
Definition: vkrenderer.h:244
VkSemaphore presentsemaphore
Definition: vkrenderer.h:253
struct vk_rendertarg * prevtarg
Definition: vkrenderer.h:257
VkFramebuffer framebuffer
Definition: vkrenderer.h:241
VkCommandBuffer cbuf
Definition: vkrenderer.h:240
uint32_t width
Definition: vkrenderer.h:246
image_t q_colour
Definition: vkrenderer.h:244
uint32_t rpassflags
Definition: vkrenderer.h:249
Definition: vkrenderer.h:340
int availsets
Definition: vkrenderer.h:342
VkDescriptorPool pool
Definition: vkrenderer.h:341
struct descpool * next
Definition: vkrenderer.h:344
int totalsets
Definition: vkrenderer.h:343
Definition: vkrenderer.h:347
VkDeviceMemory stagingmemory
Definition: vkrenderer.h:354
void * ptr
Definition: vkrenderer.h:358
VkBuffer devicebuf
Definition: vkrenderer.h:355
VkDeviceMemory devicememory
Definition: vkrenderer.h:356
VkBuffer renderbuf
Definition: vkrenderer.h:357
size_t offset
Definition: vkrenderer.h:349
qboolean stagingcoherent
Definition: vkrenderer.h:352
struct dynbuffer * next
Definition: vkrenderer.h:360
size_t align
Definition: vkrenderer.h:351
VkBuffer stagingbuf
Definition: vkrenderer.h:353
size_t flushed
Definition: vkrenderer.h:348
size_t size
Definition: vkrenderer.h:350
Definition: vkrenderer.h:313
VkFence fence
Definition: vkrenderer.h:314
void(* Passed)(void *)
Definition: vkrenderer.h:316
VkCommandBuffer cbuf
Definition: vkrenderer.h:317
struct vk_fencework * next
Definition: vkrenderer.h:315
Definition: vkrenderer.h:327
struct vk_mempool_s * next
Definition: vkrenderer.h:328
VkDeviceSize gaps
Definition: vkrenderer.h:334
VkDeviceSize memorysize
Definition: vkrenderer.h:336
VkDeviceMemory memory
Definition: vkrenderer.h:331
VkDeviceSize memoryoffset
Definition: vkrenderer.h:335
uint32_t memtype
Definition: vkrenderer.h:330
Definition: vkrenderer.h:373
struct vk_frameend * next
Definition: vkrenderer.h:374
void(* FrameEnded)(void *)
Definition: vkrenderer.h:375
Definition: vkrenderer.h:364
struct dynbuffer * dynbufs[DB_MAX]
Definition: vkrenderer.h:366
size_t numcbufs
Definition: vkrenderer.h:370
VkFence finishedfence
Definition: vkrenderer.h:372
size_t maxcbufs
Definition: vkrenderer.h:371
struct vk_rendertarg * backbuf
Definition: vkrenderer.h:378
struct descpool * descpools
Definition: vkrenderer.h:367
VkCommandBuffer * cbufs
Definition: vkrenderer.h:369
VkSemaphore acquiresemaphore
Definition: vkrenderer.h:368
struct vulkaninfo_s::vkframe::vk_frameend * frameendjobs
struct vkframe * next
Definition: vkrenderer.h:365
Definition: vkrenderer.h:404
struct vksamplers_s * next
Definition: vkrenderer.h:409
unsigned int usages
Definition: vkrenderer.h:406
unsigned int flags
Definition: vkrenderer.h:407
VkSamplerCreateInfo props
Definition: vkrenderer.h:408
struct vksamplers_s ** link
Definition: vkrenderer.h:410
VkSampler samp
Definition: vkrenderer.h:405
Definition: vkrenderer.h:414
struct vk_fencework * fencedwork
Definition: vkrenderer.h:423
VkCommandBuffer cmdbuf
Definition: vkrenderer.h:417
VkQueue queue
Definition: vkrenderer.h:416
VkPipelineStageFlags semwaitstagemask
Definition: vkrenderer.h:419
VkSemaphore semsignal
Definition: vkrenderer.h:420
VkFence fencesignal
Definition: vkrenderer.h:421
struct vkframe * present
Definition: vkrenderer.h:424
VkSemaphore semwait
Definition: vkrenderer.h:418
struct vkwork_s * next
Definition: vkrenderer.h:415
Definition: vkrenderer.h:273
VkFormat depthformat
Definition: vkrenderer.h:396
VkPipelineCache pipelinecache
Definition: vkrenderer.h:310
struct vulkaninfo_s::vk_fencework * fencework_last
struct vk_rendertarg * rendertarg
Definition: vkrenderer.h:363
VkSampleCountFlagBits multisamplebits
Definition: vkrenderer.h:395
uint32_t acquirebufferidx[ACQUIRELIMIT]
Definition: vkrenderer.h:305
VkPhysicalDevice gpu
Definition: vkrenderer.h:290
VkRenderPass renderpass[1u<< 6]
Definition: vkrenderer.h:391
VkInstance instance
Definition: vkrenderer.h:288
void(* dopresent)(struct vkframe *theframe)
Definition: vkrenderer.h:428
VkFence acquirefences[ACQUIRELIMIT]
Definition: vkrenderer.h:304
VkQueue queue_present
Definition: vkrenderer.h:295
qboolean vsync
Definition: vkrenderer.h:275
volatile unsigned int acquirelast
Definition: vkrenderer.h:307
int filterpic[3]
Definition: vkrenderer.h:321
qboolean amd_rasterization_order
Definition: vkrenderer.h:282
struct vulkaninfo_s::vkframe * frame
struct vulkaninfo_s::vk_mempool_s * mempools
VkPhysicalDeviceLimits limits
Definition: vkrenderer.h:299
qboolean allowsubmissionthread
Definition: vkrenderer.h:276
struct vk_rendertarg * backbufs
Definition: vkrenderer.h:362
uint32_t backbuf_count
Definition: vkrenderer.h:381
void * submitthread
Definition: vkrenderer.h:426
VkPhysicalDeviceMemoryProperties memory_properties
Definition: vkrenderer.h:297
int mipcap[2]
Definition: vkrenderer.h:322
int filtermip[3]
Definition: vkrenderer.h:320
struct vulkaninfo_s::vk_fencework * fencework
VkDevice device
Definition: vkrenderer.h:289
unsigned short triplebuffer
Definition: vkrenderer.h:274
qboolean khr_swapchain
Definition: vkrenderer.h:278
float max_anistophy
Definition: vkrenderer.h:324
VkSemaphore acquiresemaphores[ACQUIRELIMIT]
Definition: vkrenderer.h:303
float lodbias
Definition: vkrenderer.h:323
shader_t * scenepp_rescale
Definition: vkrenderer.h:435
void * submitcondition
Definition: vkrenderer.h:427
texid_t sourcecolour
Definition: vkrenderer.h:430
unsigned int acquirenext
Definition: vkrenderer.h:306
qboolean khr_fragment_shading_rate
Definition: vkrenderer.h:285
qboolean neednewswapchain
Definition: vkrenderer.h:400
uint32_t queuenum[VQ_COUNT]
Definition: vkrenderer.h:293
qboolean devicelost
Definition: vkrenderer.h:401
struct vulkaninfo_s::dynbuffer * dynbuf[DB_MAX]
VkQueue queue_alt[1]
Definition: vkrenderer.h:296
VkQueue queue_render
Definition: vkrenderer.h:294
qboolean khr_push_descriptor
Definition: vkrenderer.h:281
uint32_t bufferidx
Definition: vkrenderer.h:393
texid_t sourcedepth
Definition: vkrenderer.h:431
qboolean khr_dedicated_allocation
Definition: vkrenderer.h:280
VkSurfaceKHR surface
Definition: vkrenderer.h:291
qboolean ext_astc_decode_mode
Definition: vkrenderer.h:283
VkFormat backbufformat
Definition: vkrenderer.h:397
struct vulkaninfo_s::vksamplers_s * samplers
struct vulkaninfo_s::vkwork_s * work
shader_t * scenepp_waterwarp
Definition: vkrenderer.h:433
VkCommandPool cmdpool
Definition: vkrenderer.h:298
uint32_t queuefam[VQ_COUNT]
Definition: vkrenderer.h:292
struct vk_frameend * frameendjobs
Definition: vkrenderer.h:380
struct vulkaninfo_s::vkframe * unusedframes
qboolean khr_get_memory_requirements2
Definition: vkrenderer.h:279
qboolean srgbcapable
Definition: vkrenderer.h:398
shader_t * scenepp_antialias
Definition: vkrenderer.h:434
VkSwapchainKHR swapchain
Definition: vkrenderer.h:392
struct vulkaninfo_s::descpool * descpool
unsigned char buf[KBRINGSIZE]
Definition: sys_dos.c:27
void * vfsfile_t
Definition: sys_plugfte.h:2
unsigned int flags
Definition: valid.c:313
void VKBE_VBO_Destroy(vboarray_t *vearray, void *mem)
Definition: vk_backend.c:5941
VkBuffer VKBE_FinishStaging(struct stagingbuf *n, vk_poolmem_t *memptr)
Definition: vk_backend.c:3357
void VK_ReleasePoolMemory(vk_poolmem_t *mem)
Definition: vk_init.c:1358
void VK_DestroyVkTexture(vk_image_t *img)
Definition: vk_init.c:415
void VKBE_Init(void)
Definition: vk_backend.c:685
void VKBE_RestartFrame(void)
Definition: vk_backend.c:1036
void VK_UpdateFiltering(image_t *imagelist, int filtermip[3], int filterpic[3], int mipcap[2], float lodbias, float anis)
Definition: vk_init.c:1286
void VKBE_RenderToTextureUpdate2d(qboolean destchanged)
Definition: vk_init.c:4026
void VK_R_BloomShutdown(void)
Definition: gl_bloom.c:284
void VK_Shutdown(void)
Definition: vk_init.c:5437
void VKBE_ShutdownFramePools(struct vkframe *frame)
Definition: vk_backend.c:1054
vk_image_t VK_CreateTexture2DArray(uint32_t width, uint32_t height, uint32_t layers, uint32_t mips, uploadfmt_t encoding, unsigned int type, qboolean rendertarget, const char *debugname)
Definition: vk_init.c:1443
void VKBE_GenBrushModelVBO(model_t *mod)
Definition: vk_backend.c:3534
void VK_R_Init(void)
Definition: vk_init.c:2197
void VKBE_RenderShadowBuffer(struct vk_shadowbuffer *buf)
Definition: vk_backend.c:5482
dynbuf_e
Definition: vkrenderer.h:231
@ DB_EBO
Definition: vkrenderer.h:233
@ DB_STAGING
Definition: vkrenderer.h:235
@ DB_UBO
Definition: vkrenderer.h:234
@ DB_MAX
Definition: vkrenderer.h:236
@ DB_VBO
Definition: vkrenderer.h:232
void VK_Draw_Shutdown(void)
Definition: vk_init.c:1156
void VKBE_DestroyShadowBuffer(struct vk_shadowbuffer *buf)
Definition: vk_backend.c:5471
void VKBE_InitFramePools(struct vkframe *frame)
Definition: vk_backend.c:956
qboolean VK_EnumerateDevices(void *usercontext, void(*callback)(void *context, const char *devicename, const char *outputname, const char *desc), const char *descprefix, PFN_vkGetInstanceProcAddr vk_GetInstanceProcAddr)
Definition: vk_init.c:4597
qboolean R_CanBloom(void)
Definition: gl_bloom.c:172
char * VK_VKErrorToString(VkResult err)
uint32_t vk_find_memory_require(uint32_t typeBits, VkFlags requirements_mask)
Definition: vk_init.c:407
void VKBE_RT_Begin(struct vk_rendertarg *targ)
Definition: vk_backend.c:4600
void * VKBE_CreateStagingBuffer(struct stagingbuf *n, size_t size, VkBufferUsageFlags usage)
Definition: vk_backend.c:3311
batch_t * VKBE_GetTempBatch(void)
Definition: vk_backend.c:3761
void VKBE_Set2D(qboolean twodee)
Definition: vk_backend.c:1025
qboolean VK_LoadGLSL(struct programshared_s *prog, struct programpermu_s *permu, int ver, const char **precompilerconstants, const char *vert, const char *tcs, const char *tes, const char *geom, const char *frag, qboolean noerrors, vfsfile_t *blobfile)
void VK_FencedSubmit(void *work)
Definition: vk_init.c:1858
void VK_FencedCheck(void)
Definition: vk_init.c:1807
uint32_t vk_find_memory_try(uint32_t typeBits, VkFlags requirements_mask)
Definition: vk_init.c:393
struct vk_shadowbuffer * VKBE_GenerateShadowBuffer(vecV_t *verts, int numverts, index_t *indicies, int numindicies, qboolean istemp)
Definition: vk_backend.c:5422
qboolean VK_AllocateImageMemory(VkImage image, qboolean dedicated, vk_poolmem_t *mem)
Definition: vk_init.c:1377
void VKBE_SubmitBatch(batch_t *batch)
Definition: vk_backend.c:4096
void VKVID_QueueGetRGBData(void(*gotrgbdata)(void *rgbdata, qintptr_t bytestride, size_t width, size_t height, enum uploadfmt fmt))
Definition: vk_init.c:3193
void * VK_AtFrameEnd(void(*passed)(void *work), void *data, size_t worksize)
Definition: vk_init.c:1913
void VK_Submit_Work(VkCommandBuffer cmdbuf, VkSemaphore semwait, VkPipelineStageFlags semwaitstagemask, VkSemaphore semsignal, VkFence fencesignal, struct vkframe *presentframe, struct vk_fencework *fencedwork)
Definition: vk_init.c:4353
void VKBE_UploadAllLightmaps(void)
Definition: vk_backend.c:3725
void VKBE_RT_Destroy(struct vk_rendertarg *targ)
Definition: vk_backend.c:4159
VkRenderPass VK_GetRenderPass(int pass)
Definition: vk_init.c:4042
qboolean VK_LoadTextureMips(texid_t tex, const struct pendingtextureinfo *mips)
Definition: vk_init.c:1941
qboolean VK_AllocatePoolMemory(uint32_t pooltype, VkDeviceSize memsize, VkDeviceSize poolalignment, vk_poolmem_t *mem)
Definition: vk_init.c:1314
qboolean VK_AllocateBindImageMemory(vk_image_t *image, qboolean dedicated)
Definition: vk_init.c:1432
void VKBE_DrawWorld(batch_t **worldbatches)
Definition: vk_backend.c:5777
char * VKVID_GetRGBInfo(int *bytestride, int *truevidwidth, int *truevidheight, enum uploadfmt *fmt)
Definition: vk_init.c:3261
qboolean VKBE_BeginShadowmap(qboolean isspot, uint32_t width, uint32_t height)
Definition: vk_backend.c:5530
void VKBE_RT_Gen(struct vk_rendertarg *targ, vk_image_t *colour, uint32_t width, uint32_t height, qboolean clear, unsigned int flags)
Definition: vk_backend.c:4186
void VKBE_SetupForShadowMap(dlight_t *dl, int texwidth, int texheight, float shadowscale)
Definition: vk_backend.c:5732
void VK_DoPresent(struct vkframe *theframe)
Definition: vk_init.c:4172
void VKBE_SelectEntity(entity_t *ent)
Definition: vk_backend.c:3305
void VK_DestroyTexture(texid_t tex)
Definition: vk_init.c:2183
void VKBE_DrawMesh_List(shader_t *shader, int nummeshes, mesh_t **mesh, vbo_t *vbo, texnums_t *texnums, unsigned int beflags)
Definition: vk_backend.c:4124
void VKBE_BeginShadowmapFace(void)
Definition: vk_backend.c:5753
void VKBE_VBO_Data(vbobctx_t *ctx, void *data, size_t size, vboarray_t *varray)
Definition: vk_backend.c:5913
void set_image_layout(VkCommandBuffer cmd, VkImage image, VkImageAspectFlags aspectMask, VkImageLayout old_image_layout, VkAccessFlags srcaccess, VkPipelineStageFlagBits srcstagemask, VkImageLayout new_image_layout, VkAccessFlags dstaccess, VkPipelineStageFlagBits dststagemask)
Definition: vk_init.c:1765
qboolean VK_SCR_UpdateScreen(void)
Definition: vk_init.c:3867
void VK_CreateSampler(unsigned int flags, vk_image_t *img)
Definition: vk_init.c:1215
void VKBE_DoneShadows(void)
Definition: vk_backend.c:5675
struct vk_image_s vk_image_t
void VKBE_DrawMesh_Single(shader_t *shader, mesh_t *meshchain, vbo_t *vbo, unsigned int beflags)
Definition: vk_backend.c:4142
void VKBE_RT_End(struct vk_rendertarg *targ)
Definition: vk_backend.c:4669
void VKBE_Scissor(srect_t *rect)
Definition: vk_backend.c:5955
void VKBE_BaseEntTextures(const qbyte *scenepvs, const int *sceneareas)
Definition: vk_backend.c:5399
void VK_R_BloomBlend(texid_t source, int x, int y, int w, int h)
Definition: gl_bloom.c:202
void * VK_FencedBegin(void(*passed)(void *work), size_t worksize)
Definition: vk_init.c:1835
qboolean VKBE_LightCullModel(vec3_t org, model_t *model)
Definition: vk_backend.c:3730
void VKBE_RT_Gen_Cube(struct vk_rendertarg_cube *targ, uint32_t size, qboolean clear)
Definition: vk_backend.c:4417
void VKBE_VBO_Finish(vbobctx_t *ctx, void *edata, size_t esize, vboarray_t *earray, void **vbomem, void **ebomem)
Definition: vk_backend.c:5922
void VK_Draw_Init(void)
Definition: vk_init.c:1152
void VKBE_VBO_Begin(vbobctx_t *ctx, size_t maxsize)
Definition: vk_backend.c:5891
void VK_CreateSamplerInfo(VkSamplerCreateInfo *info, vk_image_t *img)
Definition: vk_init.c:1186
VkCommandBuffer VK_AllocFrameCBuf(void)
Definition: vk_init.c:3563
void VKBE_Shutdown(void)
Definition: vk_backend.c:1086
void VK_R_RenderView(void)
Definition: vk_init.c:2850
void VKBE_SelectMode(backendmode_t mode)
Definition: vk_backend.c:3239
qboolean VKBE_SelectDLight(dlight_t *dl, vec3_t colour, vec3_t axis[3], unsigned int lmode)
Definition: vk_backend.c:3284
void VKBE_ClearVBO(vbo_t *vbo, qboolean dataonly)
Definition: vk_backend.c:3594
void VK_R_DeInit(void)
Definition: vk_init.c:2206
qboolean VK_Init(rendererstate_t *info, const char **sysextname, qboolean(*createSurface)(void), void(*dopresent)(struct vkframe *theframe))
Definition: vk_init.c:4687
void VKBE_FlushDynamicBuffers(void)
Definition: vk_backend.c:987
VkFlags VkPipelineStageFlags
Definition: vulkan.h:1128
VkImageLayout
Definition: vulkan.h:612
VkFlags VkImageAspectFlags
Definition: vulkan.h:1138
VkFlags VkAccessFlags
Definition: vulkan.h:1318
uint64_t VkDeviceSize
Definition: vulkan.h:68
VkSampleCountFlagBits
Definition: vulkan.h:1067
VkFlags VkBufferUsageFlags
Definition: vulkan.h:1208
uint32_t VkFlags
Definition: vulkan.h:66
VkResult
Definition: vulkan.h:122
VkFormat
Definition: vulkan.h:362
VkPipelineStageFlagBits
Definition: vulkan.h:1107
PFN_vkVoidFunction(VKAPI_PTR * PFN_vkGetInstanceProcAddr)(VkInstance instance, const char *pName)
Definition: vulkan.h:2485