Commit Graph

1099 Commits

Author SHA1 Message Date
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
85847fd2e0 Beginning refactoring of KRTexture for Vulkan. Added KRTexture::TextureHandle. 2022-07-13 23:24:46 -07:00
0382c15fe3 Re-enabling KRCamera::renderPost 2022-07-13 22:54:10 -07:00
e280ac486a Vertex data is now uploaded asynchronously, using staging buffers. 2022-07-12 00:48:53 -07:00
96e57d9344 Streaming thread now calling KRDebive::streamStart() and KRDevice::streamEnd(). 2022-07-12 00:41:37 -07:00
7ea1349fb9 Implemented Asynchronous upload (transfer queue) functions in KRDevice. 2022-07-12 00:31:30 -07:00
dfde4f876d KRDevice::createBuffer is now fallible.
Staging buffer flags corrected.
2022-07-12 00:01:27 -07:00
738cfd29ef KRDevice now creates transfer queues for each GPU. Implemented algorithm to keep graphics, compute, and transfer queue families independent when possible. 2022-07-11 23:45:08 -07:00
7f3ceebd5f Allocated staging buffers for asset upload. For each GPU, two buffers. One for asynchronous asset streaming with the transfer queue and another for immediate asset streaming with the graphics queue. 2022-07-11 22:55:08 -07:00
4bc44a8e52 Removed KRContext::getStreamingEnabled and KRContext::setStreamingEnabled, as streaming is always enabled in the runtime now. m_streamingEnabled remains as a signal that the managers have completed loading and that streaming should start. 2022-07-11 22:27:44 -07:00
fed12dbc96 Moved debug label functionality to KRDevice::createBuffer 2022-07-10 00:15:18 -07:00
6e1e07cc07 Created helper function for Vulkan Buffer creation, KRDevice::createBuffer.
Updated KRMeshManager to use KRDevice::createBuffer for vertex and index data.
2022-07-09 23:52:35 -07:00