Commit Graph

277 Commits

Author SHA1 Message Date
Artem Kharytoniuk
0d29be174f Clean up: moved render pass/framebuffer handles to Vulkan_Instance.
Demo code removal.
2017-04-11 19:24:39 +03:00
Artem Kharytoniuk
6afd32f4d2 Clean up: moved command_pool/command_buffer handles to Vulkan_Instance. 2017-04-11 14:30:47 +03:00
Artem Kharytoniuk
eca35b6050 Clean up: introduced Vulkan_Instance, Vulkan_Resources structures.
Vulkan_Instance contains variables related to persistent vulkan resources like instance, device, queue, swapchain, etc.
Vulkan_Instance is re-iniitalized only during window creation.

Vulkan_Resources contains data specific to current game context, i.e. current level.
Vulkan_Resources can be re-loaded during level change, level exit, etc.
2017-04-11 14:05:38 +03:00
Artem Kharytoniuk
44a5f950ad Logic to specify face culling during pipeline creation. 2017-04-10 14:42:52 +03:00
Artem Kharytoniuk
3127807db9 Removed glm third party dependency. 2017-04-10 12:48:24 +03:00
Artem Kharytoniuk
886ea847ca Vk_Vertex, Vk_Vertex2 - vertex formats for single/multi textured geometry correspondingly. 2017-04-10 11:46:36 +03:00
Artem Kharytoniuk
8a4cce66ed Started work on removing vulkan demo code.
Cinematics update.
Clean up.
2017-04-10 11:11:17 +03:00
Artem Kharytoniuk
6d50cb783c Proper images selection, so animation images work now. 2017-04-07 16:47:21 +03:00
Artem Kharytoniuk
121afa2231 Create pipelines based on GLS_XXX state. 2017-04-06 17:26:22 +03:00
Artem Kharytoniuk
a45d37355e Cleanup. 2017-04-05 15:17:16 +03:00
Artem Kharytoniuk
76d4deb58a Specify shaders directly as arrays of bytes in source code.
This allows us to provide all functionality in executable file without providing additional data files.
Added bin2hex utility that does [spirv binary->cpp code] conversion.
Idea is based on vkQuake implementation.
2017-04-05 14:26:15 +03:00
Artem Kharytoniuk
a02cb3ee10 Cleanup: removed r_ignoreFastPath and fast pass code.
This optimization is not important nowdays. Also fast pass was disabled by default in original code.
This change simplifies rendering code since now we have only two shader stage processing functions: generic and sky.
2017-04-03 16:54:14 +03:00
Artem Kharytoniuk
0962288d03 Cleanup: removed unused GL_DECAL texture env mode. 2017-04-03 16:00:00 +03:00
Artem Kharytoniuk
258a1ca9cd Multitexture rendering prototyping. 2017-04-03 14:40:32 +03:00
Artem Kharytoniuk
27038dde48 Cleanup: removed effectively unused textureBundle_t::vertexLightmap variable. 2017-04-03 12:49:48 +03:00
Artem Kharytoniuk
c0ce8b4fe3 Removed SF_DISPLAY_LIST surface type.
It was only a placeholder without implementation and was not used by the engine.
2017-03-31 13:38:55 +03:00
Artem Kharytoniuk
63c32ff8a6 Cleanun: provide only those qgl pointers that are really used by the engine. 2017-03-31 13:24:34 +03:00
Artem Kharytoniuk
3cdeb7aa3a Removed SDL 3rd party dependency. 2017-03-30 17:44:22 +03:00
Artem Kharytoniuk
e9b972d562 New cvars: r_renderAPI , r_renderAPICompareWindow.
r_renderAPI specifies rendering API to use (0 - opengl, 1 - vulkan).
r_renderAPICompareWindow shows additional window which does the same rendering as the main windows but uses different graphics API.
The idea is to use r_renderAPICompareWindow for debugging to be sure that both APIs render identical/similar pictures.
2017-03-30 17:39:48 +03:00
Artem Kharytoniuk
dd372cad1b Cleanup. 2017-03-30 09:59:33 +03:00
Artem Kharytoniuk
1b46128499 Quick prototyping of 3d mode rendering. 2017-03-29 14:17:58 +03:00
Artem Kharytoniuk
103bc0462b Use dynamic buffer offsets to update ubo per draw. 2017-03-29 11:20:50 +03:00
Artem Kharytoniuk
d0700752eb Quick prototyping of 2d mode rendering (UI). 2017-03-28 22:32:42 +03:00
Artem Kharytoniuk
6cd89f37ac Working on UI drawing. 2017-03-28 16:50:16 +03:00
Artem Kharytoniuk
7a1e74fa35 Orthographic projection matrix that respects vulkan viewport conveтions. 2017-03-28 13:40:54 +03:00
Artem Kharytoniuk
61647d8827 Cleanup. 2017-03-27 23:29:50 +03:00
Artem Kharytoniuk
54ab26edb3 Cinematic images update. 2017-03-27 17:20:21 +03:00
Artem Kharytoniuk
35363cb05d Cleanup. 2017-03-27 12:03:54 +03:00
Artem Kharytoniuk
f12488d99f Added vk.h/cpp - it is going to be the main vulkan related module in the renderer.
The plan is to remove other vulkan modules copied from the demo project for quick bootstrapping and replace them by more engine specific vulkan code.
2017-03-24 11:52:01 +02:00
Artem Kharytoniuk
f944034d17 First attempt for general frame begin/end vulkan functionality.
Test code to draw q3 cinematic.
Bugs to fix when things will settle down a bit: cinematic leaks memory, render_view function invalidates command buffer when multiple scenes are rendered in a single frame.
2017-03-23 23:19:44 +02:00
Artem Kharytoniuk
ab66921e14 Added VkImage to image_t. For testing purposes draw all images in a sequence on screen aligned quad. 2017-03-22 11:08:58 +02:00
Artem Kharytoniuk
0b2685bb4b Removed image_t::TMU. 2017-03-20 21:21:55 +02:00
Artem Kharytoniuk
26dda0aa5e Removed unsupported platform code. 2017-03-20 20:57:49 +02:00
Artem Kharytoniuk
fa40b3b8ce Old features cleanup: GL_ARB_multitexture is not optional anymore, always use qglDrawElements for rendering. 2017-03-20 20:35:48 +02:00
Artem Kharytoniuk
a4a5920a93 Removed unused function. 2017-03-20 12:48:10 +02:00
Artem Kharytoniuk
1b78b53bea Simplification and cleanup of windows opengl initialization.
Removed r_colorbits, use desktop color depth as default value. Nevertheless if there are issues when looking
for corresponding pixel format it is still posible to obtain pixel format with color depth that is different
from desktop color.
No changes to game modules, which means that game UI can still set r_colorbits but it has no effect.
2017-03-20 10:31:02 +02:00
Artem Kharytoniuk
a16c11adf6 Disabled bot log. 2017-03-17 20:43:33 +02:00
Artem Kharytoniuk
3113bc698b Removed filter for 3rd party headers from renderer project. 2017-03-17 17:03:01 +02:00
Artem Kharytoniuk
0454c6d58d Updated gitignore. 2017-03-17 16:50:20 +02:00
Artem Kharytoniuk
12e190c7c7 Updated VS projects. 2017-03-17 15:37:05 +02:00
Artem Kharytoniuk
389bbf32c2 Rename: source -> src. 2017-03-17 15:28:25 +02:00
Artem Kharytoniuk
06f5be6462 Updated folders structure: binaries -> bin. 2017-03-17 12:27:59 +02:00
Artem Kharytoniuk
19749d74c8 Created separate vulkan window with running demo and update it on each renderer tick. 2017-03-17 12:13:51 +02:00
Artem Kharytoniuk
9d0f0134b0 Added test model and shaders. 2017-03-16 23:01:39 +02:00
Artem Kharytoniuk
b482e778ff Added source files from demo project as starting point for vulkan development. 2017-03-16 22:32:02 +02:00
Artem Kharytoniuk
10ef302b5f Removed linker dependencies from the game projects. Default libraries (crt and core windows) will do the job. 2017-03-16 20:18:56 +02:00
Artem Kharytoniuk
93d0d4a318 Added SDL2.pdb. 2017-03-16 14:07:45 +02:00
Artem Kharytoniuk
a0443ea3c7 Moved libraries to third_party folder. 2017-03-16 11:12:29 +02:00
Artem Kharytoniuk
569af71ad3 Updated vulkan import library (1.0.42.1). 2017-03-16 11:03:18 +02:00
Artem Kharytoniuk
d5b1ade094 Added glm library. 2017-03-16 11:02:04 +02:00