ecb1c8a50f
Removed OpenGL defines from KREngine-common.h Replaced GLDEBUG macro with an assert so code will stop when it hits OpenGL code yet to be refactored to Vulkan.
kearwood2022-09-21 17:53:06 -07:00
2a36e6a11e
Re-enable camera sky box draw call
kearwood2022-09-21 01:13:16 -07:00
5219cf0ba7
Enabled draw call for debug text overlay Vertically flipped debug text character sampling from font texture. Debug text overlay pass now functioning in Vulkan
kearwood2022-09-21 00:59:31 -07:00
f4bd0d6340
Removing OpenGL code related to textures
kearwood2022-09-18 23:19:30 -07:00
8306202cf1
WIP Creating structures in KRPipeline to cache descriptor set binding reflection data. Added stub function, KRPipeline::setImageBinding
kearwood2022-09-15 20:33:41 -07:00
183f7057e2
Added KRPipeline::StageInfo to hold cached SPV reflection information used for dynamic descriptor set and push constant binding.
kearwood2022-09-15 20:10:25 -07:00
327167c9b1
Expanded KRSurface::m_imageAvailableSemaphores and m_renderFinishedSemaphores to have one semaphore per frame in flight. (Missed files in prior commit)
kearwood2022-09-15 19:20:10 -07:00
cc4efe34e1
kMaxGraphicsCommandBuffers is now initialized to KRENGINE_MAX_FRAMES_IN_FLIGHT rather than using a magic number.
kearwood2022-09-15 19:18:54 -07:00
4d0158c0ec
Added KRSurface::m_inFlightFences. Now properly handling multiple frames in flight and waiting on fences when the CPU catches up.
kearwood2022-09-15 00:26:23 -07:00
478669ed81
Expanded KRSurface::m_imageAvailableSemaphores and m_renderFinishedSemaphores to have one semaphore per frame in flight.
kearwood2022-09-14 23:59:52 -07:00
9b46917171
Added requirement for Vulkan SPV_EXT_descriptor_indexing extension.
kearwood2022-09-13 18:18:37 -07:00
5ffc3d9b9b
Refactor - DescriptorSet and DescriptorManager are now UniformBuffer and UniformBufferManager.
kearwood2022-09-13 18:18:25 -07:00
175c4e2008
Add KRDescriptorManager and KRDescriptorSet classes with stub functions.
kearwood2022-09-13 17:31:41 -07:00
5ed6b8eccd
Push constants are now supported for all stages.
kearwood2022-09-09 00:38:46 -07:00
aeaed68efb
Moved ShaderStage to KRShader and expanded to include all stages. Added mapping functions, getShaderStageFromExtension and getShaderStageFlagBitsFromShaderStage. KRShader::m_stage is now typed as ShaderStage.
kearwood2022-09-09 00:36:22 -07:00
f20f7f73d6
Centralized shader file sub-extension to shader stage mapping to KRShader.
kearwood2022-09-08 23:58:24 -07:00
e695bca3f9
Refactoring to rename uniform related functions and members to reflect that they are actually push constants after the Vulkan refactoring.
kearwood2022-09-07 23:48:46 -07:00
10f9c17cf1
Now initializing VkDescriptorSetLayout for each pipeline using SPV reflection.
kearwood2022-09-07 22:33:07 -07:00
0d848bd53b
Now using more VkSamplerCreateInfo for hash generation.
kearwood2022-09-07 22:32:37 -07:00
414ec8ca81
Removed no longer relevant comment.
kearwood2022-08-30 00:38:10 -07:00
42e8365751
Added KRSampler and KRSamplerManager classes. Marked stub functions to be implemented.
kearwood2022-08-18 17:57:11 -07:00
cef2372ce8
Modernization - KRMesh::Submesh::vbo_data_blocks is now a vector<shared_ptr>.
kearwood2022-08-17 01:56:01 -07:00
2391ed9785
Modernization - KRMesh::m_submeshes now contains KRMesh::Submesh objects rather than pointers. Insertion done with emplace.
kearwood2022-08-16 20:08:30 -07:00
2085908017
Added KRShaderManager::Includer Now able to include shaders from other shaders with GL_GOOGLE_include_directive. Added vulkan_test_include.glsl and included it from vulkan_test.vert.
kearwood2022-08-15 19:48:59 -07:00
f5855aeaec
Corrected normals for KRMeshSphere so the sphere will have a smooth surface. Disabled KRMesh::optimizeIndexes as it is crashing with certain meshes, such as those generated by KRMeshSphere
kearwood2022-08-08 00:09:02 -07:00
9b31914371
Added VS editorconfig for C++ formatting style
kearwood2022-08-07 23:56:20 -07:00
732560f732
Separate push constants can now be sent to vertex and fragment stages.
kearwood2022-08-06 00:14:21 -07:00
29d928ca29
Eliminated static_cast from KRPipeline::hasUniform KRPipeline::setUniform now updates push constants for all stages
kearwood2022-08-05 23:44:46 -07:00
347a258c99
Fixed bug that caused indexed strip meshes to be changed to indexed triangle meshes when optimized.
kearwood2022-08-03 22:08:32 -07:00
5f32d4dede
KRENGINE_ATTRIB_..._SHORT types are now mapped to equivalent Vulkan ..._SNORM types.
kearwood2022-08-02 02:15:46 -07:00
b714f7b52a
Reduced verbosity of KRPipeline::Uniform
kearwood2022-08-02 01:31:13 -07:00
06f4056887
Added KRPipeline::Uniform enum class to replace existing untyped enum.
kearwood2022-08-02 01:04:00 -07:00
2dab7a2b48
Moved many KRPipeline public members to private. Added KRPipeline::hasUniform to avoid accessing private members directly in KRMaterial. Added KRPipeline::setUniform overload, for setting an array of Matrix4's.
kearwood2022-08-02 00:43:36 -07:00
74ed52fefd
Refactoring push KRPipeline::m_pushConstantOffset and KRPipeline::m_pushConstantSize in preparation to support push constants for multiple shader stages
kearwood2022-08-01 23:44:46 -07:00
f52ddc007f
Changed Vulkan test code in KRCamera::renderPost, preparing for testing the debug font shader. Fixed bug causing KRMeshManager::KRVBOData::bind to crash when there is no index data.
kearwood2022-07-29 01:12:23 -07:00
40024ed9d8
Added KRMeshManager::KRENGINE_VBO_DATA_RANDOM_PARTICLES and KRMeshManager::KRENGINE_VBO_DATA_VOLUMETRIC_LIGHTING. The random particle and volumetric lighting plane geometry is now static, computed on initialization, and no longer lazily initialized. Removed KRMeshManager::bindVBO function overload that accepted KRDataBlock's directly for index and vertex data. This was creating KRVBOData objects with KRVBOData::IMMEDIATE that were no longer being owned or de-allocated by KRMeshManager.
kearwood2022-07-29 00:51:01 -07:00
5f7912524f
vbo_type::TEMPORARY changed to vbo_type::IMMEDIATE. KRMeshManager no longer allocates, owns, and deletes IMMEDIATE/TEMPORARY data.
kearwood2022-07-29 00:10:13 -07:00
c02ad5c3e7
KRMeshManager::bindVBO now swaps handles immediately for anything not loaded on the streamer thread.
kearwood2022-07-28 23:40:09 -07:00
33f5292c5e
Added commandBuffer argument to KRDevice::graphicsUpload.
kearwood2022-07-27 23:22:51 -07:00
d19f340d32
Temporary vertex data is now uploaded synchronously in the presentation thread with the graphics command buffer.
kearwood2022-07-25 00:43:11 -07:00
6551e6d8a6
Added KRTexture::TextureHandle::destroy to eliminate duplicate code in KRTexture::destroyHandles and KRTexture::destroyNewHandles. Now creating an image view for each KRTexture for full access.
kearwood2022-07-24 23:57:01 -07:00
cfd8e35f29
Added KRDevice::setDebugLabel and helper function overloads. Now labeling more Vulkan objects.
kearwood2022-07-21 00:19:51 -07:00
d1553fc1bf
No longer creating empty command buffers for asynchronous asset streaming when there is no activity. Added VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT to command pools to correct validation errors.
kearwood2022-07-20 23:17:06 -07:00
b1384e0106
Fixed bug causing vertex buffers not to be bound on first draw call if the last draw call of the prior frame used the same buffer.
kearwood2022-07-20 22:54:27 -07:00
46f8af662e
Staging buffers are no longer host coherent; explicitly flushing the buffers instead. Fixed getQueueFamiliesForSharing, so it now correctly returns more than one queue family.
kearwood2022-07-20 22:37:22 -07:00
0cc6c0d40b
Added GPU debug labels for textures. Fixed bug causing Vulkan images to be constantly re-created.
kearwood2022-07-20 22:09:52 -07:00
7e8b5cb830
Removed glFlush call from KRTextureManager, which is not needed after Kraken refactor.
kearwood2022-07-20 21:35:48 -07:00
8f63d9607a
Added KRDevice::StagingBufferInfo to collect staging buffer related members and functions
kearwood2022-07-19 01:11:28 -07:00
ff4eb2589c
Split KRDevice::initialize into multiple helper functions
kearwood2022-07-19 00:57:18 -07:00
378b5319bf
Vulkan device now validated to have anisotropy capable samplers.
kearwood2022-07-19 00:21:46 -07:00
4a13f3c832
Added VkImage parameter to KRTexture::uploadTexture and all overrides. Converted KRTextureTGA from OpenGL to Vulkan
kearwood2022-07-19 00:13:42 -07:00
2a75ee68a0
Added helper functions, KRTexture::destroyHandles and KRTexture::destroyNewHandles
kearwood2022-07-19 00:12:40 -07:00
6392a6d04d
Added KRDevice parameters to KRTexture2D::uploadTexture. Stubbed out KRTextureTGA::compress. To be re-implemented after Vulkan refactoring.
kearwood2022-07-18 23:08:45 -07:00
c7ed12db80
Corrected call sites of KRTexture2D::uploadTexture that were still sending a GLenum as the first argument.
kearwood2022-07-18 22:57:01 -07:00
97b2889568
Vulkan refactoring - Removed OpenGL implementation for GL_EXT_texture_storage path. Eliminated dead OpenGL code in KRContext.h Removed GLenum argument from KRTexture2D::uploadTexture and all implementations.
kearwood2022-07-18 22:54:45 -07:00
41679f0497
Bump year in shader license headers
kearwood2022-07-16 01:12:16 -07:00
90dd95ae76
Refactored KRTextureCube::createGPUTexture to use Vulkan. Removed KRTexture::m_iNewHandle, as all references have been removed with Vulkan refactoring.
kearwood2022-07-16 00:56:16 -07:00
83ea50384f
Moved queue family iteration code shared by KRDevice::createImage and KRDevice::createBuffer into a utility function. Added imageCreateFlags argument to KRDevice::createImage
kearwood2022-07-16 00:45:17 -07:00
22b871ad2f
Removed unnecessary check for maximum Vulkan allocator count in KRTexture2D::createGPUTexture
kearwood2022-07-16 00:22:53 -07:00
559df3766e
KRTexture::createGLTexture renamed to createGPUTexture. Updated all child classes.
kearwood2022-07-16 00:17:25 -07:00
41a1f3bd89
Refactored KRTexture2D::createGLTexture from OpenGL to Vulkan
kearwood2022-07-16 00:12:32 -07:00
e61f8aa7d1
Added VkMemoryPropertyFlags argument to KRDevice::createImage
kearwood2022-07-16 00:03:15 -07:00
3d6dd727c2
Added pure virtual function, KRTexture2D::GetDimensions(). Implemented GetDimensions in all KRTexture2D sub classes.
kearwood2022-07-15 23:57:49 -07:00