Commit Graph

311 Commits

Author SHA1 Message Date
Artem Kharytoniuk c50a0f4484 Fog. 2017-04-29 14:44:20 +03:00
Artem Kharytoniuk e3ff14bda1 Fixed bug in SurfIsOffscreen.
This function is called by the frontend but it uses backend functionality to tesselate geometry.
It didn't clean up genereated tess data so backend received unnecessary,
geometry to render. It wasn't visible since viewport dimensions defaulted to zero values still
vulkan validation layer detected invalid vkCmdSetViewport parameters.
2017-04-28 21:10:42 +03:00
Artem Kharytoniuk 73e2be0447 Mirrors and portals. 2017-04-28 19:13:24 +03:00
Artem Kharytoniuk ae98b8b9ed Texture filtering. 2017-04-27 14:53:37 +03:00
Artem Kharytoniuk 4d33fcf925 Texture addressing mode selection (repeat or clamp). 2017-04-27 12:20:06 +03:00
Artem Kharytoniuk 327ebe2daf videoMap support. 2017-04-26 23:49:55 +03:00
Artem Kharytoniuk d66d7c4363 Image view creation code cleanup. 2017-04-26 19:32:58 +03:00
Artem Kharytoniuk a8fc2da718 Mipmaps. 2017-04-26 19:08:27 +03:00
Artem Kharytoniuk d110d15a06 Image creation functions update. 2017-04-24 22:30:15 +03:00
Artem Kharytoniuk 1e74933a47 Clean up. 2017-04-24 18:49:53 +03:00
Artem Kharytoniuk e73ff2f88e Minor cleanup. 2017-04-24 17:08:51 +03:00
Artem Kharytoniuk f2f0cea494 Staging buffer memory allocation.
Also removed the last piece of demo project code!
2017-04-24 16:35:46 +03:00
Artem Kharytoniuk 8f15de3cdc Memory allocation for geometry data.
Single allocation is made and from it I suballocate two buffers: for vertex and index data correspondingly.
2017-04-24 15:11:43 +03:00
Artem Kharytoniuk 6dab078992 Image memory allocator.
Started process of removing demo project's allocator code.
2017-04-24 10:35:19 +03:00
Artem Kharytoniuk f823930d83 Demo project files removal and cleanup. 2017-04-22 01:16:32 +03:00
Artem Kharytoniuk 2dacfbb44f Cleanup: removed Shader_Module, Defer_Action helpers. 2017-04-20 13:57:49 +03:00
Artem Kharytoniuk e3f41dd276 Demo project files removal and cleanup. 2017-04-20 12:57:46 +03:00
Artem Kharytoniuk 6df80b5783 Vk_Image structure to hold vulkan image's related resources. 2017-04-20 11:51:52 +03:00
Artem Kharytoniuk 140bec0188 Fixed ZFar plane bug. 2017-04-19 19:02:42 +03:00
Artem Kharytoniuk 07f4d33492 Skybox rendering. 2017-04-19 18:44:21 +03:00
Artem Kharytoniuk ab32f499f8 Fixed r_fastsky and preparation to fix the rest of sky rendering. 2017-04-18 13:40:28 +03:00
Artem Kharytoniuk a5d410fd9f Cleanup. 2017-04-16 21:26:47 +03:00
Artem Kharytoniuk 054816df49 Adjusted depth range for weapon rendering (matches opengl version). 2017-04-16 21:25:22 +03:00
Artem Kharytoniuk d1ae59d70a Removed unused code. 2017-04-14 21:06:06 +03:00
Artem Kharytoniuk eac342cdd9 Store vertex attributes in SOA style: continuous region of vertex buffer per attribute.
Removed structures that specified different vertex format.
2017-04-14 19:58:06 +03:00
Artem Kharytoniuk 047be0bd46 Code reorganization and cleanup. 2017-04-14 13:43:04 +03:00
Artem Kharytoniuk ee7cd1b5f4 Use single function for rendering which handles both single texture and multitexture mode. 2017-04-14 11:08:09 +03:00
Artem Kharytoniuk 8c5fc8f674 New pipeline and set layouts design.
Pipeline layout consists of two identical descriptor sets.
Each descriptor set defines single descriptor of combined image sampler type.
2017-04-13 19:37:11 +03:00
Artem Kharytoniuk fb74befd75 Use push contants to specify mvp transform. 2017-04-13 18:03:12 +03:00
Artem Kharytoniuk 63d14ef988 Vulkan SDK update (1.0.46.0). 2017-04-13 14:06:32 +03:00
Artem Kharytoniuk e557f6cf82 Reset tess.numVertexes in the end of RB_EndSurface.
This gives us more consistent state and  avoids potentially unnecessary draw calls due to RB_CheckOverflow.
2017-04-13 11:51:43 +03:00
Artem Kharytoniuk c208817246 Rename. 2017-04-12 18:31:29 +03:00
Artem Kharytoniuk 11791b47a3 Correct framebuffer's attachments clearing when multiple views are rendered. 2017-04-12 18:25:20 +03:00
Artem Kharytoniuk 73e4db35d7 Call scissor/viewport/depth bias commands after vkCmdBindPipeline to meet vulkan spec. 2017-04-11 19:36:50 +03:00
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