Commit Graph

860 Commits

Author SHA1 Message Date
7433d54c16 Auto format C++ source 2022-08-08 01:07:26 -07:00
c5a640e22d Updated editorconfig with C++ code style 2022-08-08 00:21:57 -07:00
d3abb3ef0d Updated hydra library 2022-08-08 00:21:31 -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
2022-08-08 00:09:02 -07:00
9b31914371 Added VS editorconfig for C++ formatting style 2022-08-07 23:56:20 -07:00
732560f732 Separate push constants can now be sent to vertex and fragment stages. 2022-08-06 00:14:21 -07:00
29d928ca29 Eliminated static_cast from KRPipeline::hasUniform
KRPipeline::setUniform now updates push constants for all stages
2022-08-05 23:44:46 -07:00
347a258c99 Fixed bug that caused indexed strip meshes to be changed to indexed triangle meshes when optimized. 2022-08-03 22:08:32 -07:00
5f32d4dede KRENGINE_ATTRIB_..._SHORT types are now mapped to equivalent Vulkan ..._SNORM types. 2022-08-02 02:15:46 -07:00
b714f7b52a Reduced verbosity of KRPipeline::Uniform 2022-08-02 01:31:13 -07:00
06f4056887 Added KRPipeline::Uniform enum class to replace existing untyped enum. 2022-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.
2022-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 2022-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.
2022-07-29 01:12:23 -07:00
fb6e197f2b Eliminated KRCamera::m_debug_text_indices 2022-07-29 01:01:17 -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.
2022-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.

Added KRCamera::m_debug_text_vertices, and KRCamera::m_debug_text_vbo_data in preparation for further work on immediately loaded mesh data.
2022-07-29 00:10:13 -07:00
c02ad5c3e7 KRMeshManager::bindVBO now swaps handles immediately for anything not loaded on the streamer thread. 2022-07-28 23:40:09 -07:00
33f5292c5e Added commandBuffer argument to KRDevice::graphicsUpload. 2022-07-27 23:22:51 -07:00
d19f340d32 Temporary vertex data is now uploaded synchronously in the presentation thread with the graphics command buffer. 2022-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.
2022-07-24 23:57:01 -07:00
9eb9cfe7c5 Added KRDevice::graphicsUpload 2022-07-22 18:31:11 -07:00
cfd8e35f29 Added KRDevice::setDebugLabel and helper function overloads. Now labeling more Vulkan objects. 2022-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.
2022-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. 2022-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.
2022-07-20 22:37:22 -07:00
0cc6c0d40b Added GPU debug labels for textures.
Fixed bug causing Vulkan images to be constantly re-created.
2022-07-20 22:09:52 -07:00
7e8b5cb830 Removed glFlush call from KRTextureManager, which is not needed after Kraken refactor. 2022-07-20 21:35:48 -07:00
e1342ab836 Added KRDevice::checkFlushStreamBuffer. 2022-07-20 21:35:20 -07:00
8f63d9607a Added KRDevice::StagingBufferInfo to collect staging buffer related members and functions 2022-07-19 01:11:28 -07:00
ff4eb2589c Split KRDevice::initialize into multiple helper functions 2022-07-19 00:57:18 -07:00
378b5319bf Vulkan device now validated to have anisotropy capable samplers. 2022-07-19 00:21:46 -07:00
4a13f3c832 Added VkImage parameter to KRTexture::uploadTexture and all overrides.
Converted KRTextureTGA from OpenGL to Vulkan
2022-07-19 00:13:42 -07:00
2a75ee68a0 Added helper functions, KRTexture::destroyHandles and KRTexture::destroyNewHandles 2022-07-19 00:12:40 -07:00
ab86194a59 Implemented KRDevice::streamUpload overload for asynchronous image streaming 2022-07-19 00:11:30 -07:00
6392a6d04d Added KRDevice parameters to KRTexture2D::uploadTexture.
Stubbed out KRTextureTGA::compress.  To be re-implemented after Vulkan refactoring.
2022-07-18 23:08:45 -07:00
c7ed12db80 Corrected call sites of KRTexture2D::uploadTexture that were still sending a GLenum as the first argument. 2022-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.
2022-07-18 22:54:45 -07:00
c8af34bc0b Vulkan refactoring - Eliminated KRTexture::m_iHandle 2022-07-18 22:30:36 -07:00
41679f0497 Bump year in shader license headers 2022-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.
2022-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
2022-07-16 00:45:17 -07:00
22b871ad2f Removed unnecessary check for maximum Vulkan allocator count in KRTexture2D::createGPUTexture 2022-07-16 00:22:53 -07:00
559df3766e KRTexture::createGLTexture renamed to createGPUTexture. Updated all child classes. 2022-07-16 00:17:25 -07:00
41a1f3bd89 Refactored KRTexture2D::createGLTexture from OpenGL to Vulkan 2022-07-16 00:12:32 -07:00
e61f8aa7d1 Added VkMemoryPropertyFlags argument to KRDevice::createImage 2022-07-16 00:03:15 -07:00
3d6dd727c2 Added pure virtual function, KRTexture2D::GetDimensions(). Implemented GetDimensions in all KRTexture2D sub classes. 2022-07-15 23:57:49 -07:00
003bee0d25 Added KRDevice::createImage 2022-07-15 23:53:42 -07:00
b857654cf6 Refactored KRTexture::resize for Vulkan. 2022-07-14 00:00:55 -07:00
1d11be0e61 Refactored KRTexture::_swapHandles for Vulkan. Added KRTexture::m_haveNewHandles. 2022-07-13 23:44:43 -07:00