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