quakeforge/libs/video/renderer/vulkan
Bill Currie 6d5e8922a5 [qfcc] Add a handle type for engine resources
I never liked the various hacks I had come up with for representing
resource handles in Ruamoko. Structs with an int were awkward to test,
pointers and ints could be modified, etc etc. The new @handle keyword (@
used to keep handle free for use) works just like struct, union and
enum in syntax, but creates an opaque type suitable for a 32-bit handle.
The backing type is a function so v6 progs can use it without (all the
necessary opcodes exist) and no modifications were needed for
type-checking in binary expressions, but only assignment and comparisons
are supported, and (of course) nil. Tested using cbuf_t and QFile: seems
to work as desired.

I had considered 64-bit handles, but really, if more than 4G resource
objects are needed, I'm not sure QF can handle the game. However, that
limit is per resource manager, not total.
2023-05-25 10:41:28 +09:00
..
shader [vulkan] Add partial support for cube maps to OIT 2023-02-14 13:24:47 +09:00
test [vulkan] Update staging test for properties2 2022-09-22 09:35:57 +09:00
vkgen [qfcc] Add a handle type for engine resources 2023-05-25 10:41:28 +09:00
barrier.c [vulkan] Implement order implement transparency 2022-12-01 03:00:47 +09:00
buffer.c [vulkan] Clean up a pile of unnecessary includes 2022-05-08 17:57:40 +09:00
capture.c [vulkan] Calculate the size of the capture buffer 2022-09-28 02:46:09 +09:00
command.c [vulkan] Clean up a pile of unnecessary includes 2022-05-08 17:57:40 +09:00
debug.c [vulkan] Label renderpass and subpass sections 2022-05-07 15:45:11 +09:00
descriptor.c [vulkan] Clean up a pile of unnecessary includes 2022-05-08 17:57:40 +09:00
device.c [vulkan] Implement most of the changes for cube rendering 2023-02-14 13:24:47 +09:00
image.c [vulkan] Clean up a pile of unnecessary includes 2022-05-08 17:57:40 +09:00
instance.c [vulkan] Switch to using vkGetPhysicalDeviceProperties2 2022-09-22 09:35:56 +09:00
memory.c [vulkan] Clean up a pile of unnecessary includes 2022-05-08 17:57:40 +09:00
pipeline.c [vulkan] Clean up a pile of unnecessary includes 2022-05-08 17:57:40 +09:00
pl_output.plist [vulkan] Use bare dictionaries for spec files 2023-03-12 14:48:14 +09:00
pl_quake_def.plist [vulkan] Use bare dictionaries for spec files 2023-03-12 14:48:14 +09:00
projection.c [cvar] Make cvars properly typed 2022-04-24 19:15:22 +09:00
render.c [vulkan] Be clearer about descriptor set layouts vs sets 2023-03-29 09:45:17 +09:00
resource.c [vulkan] Ensure host-visible buffers are big enough to flush 2023-03-09 10:19:24 +09:00
rp_defcube.plist [vulkan] Use bare dictionaries for spec files 2023-03-12 14:48:14 +09:00
rp_deferred.plist [vulkan] Use bare dictionaries for spec files 2023-03-12 14:48:14 +09:00
rp_forward.plist [vulkan] Use bare dictionaries for spec files 2023-03-12 14:48:14 +09:00
rp_main_def.plist [vulkan] Add buffer and buffer view support 2023-03-28 00:15:04 +09:00
rp_output.plist [vulkan] Use bare dictionaries for spec files 2023-03-12 14:48:14 +09:00
rp_shadow.plist [vulkan] Use bare dictionaries for spec files 2023-03-12 14:48:14 +09:00
scrap.c [vulkan] Clean up a pile of unnecessary includes 2022-05-08 17:57:40 +09:00
shader.c [vulkan] Implement most of the changes for cube rendering 2023-02-14 13:24:47 +09:00
staging.c [vulkan] Make QFV_PacketCopyBuffer take destination offset 2023-01-11 11:34:22 +09:00
swapchain.c [vulkan] Rework render pass setup 2022-11-26 23:26:35 +09:00
util.c [vulkan] Clean up a lot of unnecessary includes 2022-03-30 15:54:07 +09:00
util.h Fix a pile of warnings for gcc 12 2022-07-31 17:13:26 +09:00
vkparse.c [vulkan] Implement most of the new job system 2023-03-22 19:32:49 +09:00
vkparse.h [vulkan] Implement most of the new job system 2023-03-22 19:32:49 +09:00
vkparse.plist [vulkan] Be clearer about descriptor set layouts vs sets 2023-03-29 09:45:17 +09:00
vulkan_alias.c [vulkan] Register task functions for the pipelines 2023-02-14 15:29:00 +09:00
vulkan_bsp.c [vulkan] Register task functions for the pipelines 2023-02-14 15:29:00 +09:00
vulkan_compose.c [vulkan] Register task functions for the pipelines 2023-02-14 15:29:00 +09:00
vulkan_draw.c Fix some mxe build issues 2023-03-25 21:36:45 +09:00
vulkan_iqm.c [vulkan] Register task functions for the pipelines 2023-02-14 15:29:00 +09:00
vulkan_lighting.c [vulkan] Complete resource image and image view 2023-02-19 12:25:13 +09:00
vulkan_lightmap.c [renderer] Clean up most uses of currententity 2022-03-11 15:07:38 +09:00
vulkan_main.c [vulkan] Add a function to config render output 2023-02-19 12:38:46 +09:00
vulkan_matrices.c [vulkan] Create view matrices for fisheye cube maps 2023-02-14 13:24:47 +09:00
vulkan_output.c [vulkan] Implement most of the new job system 2023-03-22 19:32:49 +09:00
vulkan_palette.c [vulkan] Use palette lookups for top/bottom colors 2022-11-15 11:53:07 +09:00
vulkan_particles.c [vulkan] Implement most of the new job system 2023-03-22 19:32:49 +09:00
vulkan_renderpass.c [vulkan] Fix some memory leaks 2023-03-05 18:31:30 +09:00
vulkan_scene.c [ecs] Move ECS core into its own library 2022-10-26 17:24:03 +09:00
vulkan_sprite.c [vulkan] Register task functions for the pipelines 2023-02-14 15:29:00 +09:00
vulkan_texture.c [vulkan] Add a function to update texture contents 2022-11-15 09:18:26 +09:00
vulkan_translucent.c [vulkan] Implement most of the new job system 2023-03-22 19:32:49 +09:00
vulkan_vid_common.c [vulkan] Add a function to config render output 2023-02-19 12:38:46 +09:00