Commit Graph

1025 Commits

Author SHA1 Message Date
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
64341c4e90 Deleted commented dead code from KRCamera::renderPost 2022-07-09 23:42:43 -07:00
73597a21c2 Removed no longer necessary glFinish call 2022-07-09 23:20:25 -07:00
d5635a4996 Converted debug_font shader to Vulkan glsl 2022-07-08 22:20:03 -07:00
6b8404c3d7 Removed rim_color and rim_power arguments from KRPipeline::bind.
Updated the call site in KRMaterial to set rim_color and rim_power explicitly.
2022-07-08 00:01:40 -07:00
b0be60cf18 Removed fade_color argument from KRPipeline::bind.
Updated call sites to only set this attribute in the one case needed (post_fx shader)
2022-07-07 23:49:27 -07:00
ee77caba9b Updated hydra.
Latest hydra version removes dead GL helper functions.
2022-07-07 23:20:50 -07:00
5dd2068e1b Replaced GL draw calls with Vulkan in KRMesh 2022-07-07 23:18:22 -07:00
44055d1e6a Replace ifdef guards with pragma once 2022-07-07 23:09:30 -07:00
c7f9277780 Update hydra 2022-07-07 23:08:54 -07:00
216cbe3eec PipelineInfo::CullMode and PipelineInfo::RasterMode are no longer within the PipelineInfo class, enabling easier forward declaration.
KRMaterial::bind now accepts remaining parameters required to set up the pipeline.
Removed GL calls from KRModel.
Replaced ifdef guards with pragma once.
KRMesh::model_format_t changed to ModelFormat and is no longer within KRMesh, enabling easier forward declaration.
2022-07-07 22:51:16 -07:00
4f3b8ad584 KRMesh::renderSubmesh non-indexed format meshes now converted to Vulkan draw calls 2022-07-07 21:44:08 -07:00
7d36a0036c Updated call sites to ensure that KRPipeline::setUniform calls are made before KRPipeline::bind calls.
Eliminated kraken::SetUniform helper functions, which are no longer used.
2022-07-07 21:37:10 -07:00
560f7da9e7 Implemented automatic binding of push constants at runtime using SPIRV-Reflection.
Replaced GL uniforms with Vulkan push constants.
2022-07-07 19:29:50 -07:00
88a1ca186b Added KRMesh::isReady
Vulkan test code now uses KRMesh and asset ingestion pipeline for vertex and index data.
Updated Vulkan test shader to match KRMesh attribute layout.
2022-07-07 00:23:14 -07:00
e976e94da1 Added index buffer support to KRMeshManager::KRVBOData::bind 2022-07-06 23:51:43 -07:00
d2c8763fd9 Added KRMeshManager::GetMaxLODModel helper function.
Refactored KRMeshManager::GetModel call sites to use GetMaxLODModel where only the maximum LOD is used.
2022-07-06 23:42:47 -07:00
85b7b2cd31 (continued...)
KRMesh::renderSubmesh is now private.
Added KRMesh::renderNoMaterials.
Replaced renderSubmesh loops outside KRMesh with calls to KRMesh::renderNoMaterials.
Added KRMesh::getVertexAttributes.
Call sites are now using KRMesh::getVertexAttributes and KRMesh::getModelFormat to configure the pipeline.
2022-07-06 23:11:00 -07:00
93d665b356 KRMesh::renderSubmesh is now private.
Added KRMesh::renderNoMaterials.
Replaced renderSubmesh loops outside KRMesh with calls to KRMesh::renderNoMaterials.
Added KRMesh::getVertexAttributes.
Call sites are now using KRMesh::getVertexAttributes and KRMesh::getModelFormat to configure the pipeline.
2022-07-06 23:04:43 -07:00
b7e4415b16 Inlined, removed wrapper function KRPipelineManager::selectPipeline 2022-07-06 21:59:50 -07:00
8e9885b46c WIP Inlining KRPipelineManager::selectPipeline wrapper function. 2022-07-05 22:22:48 -07:00
d76ce2090d Eliminated one overload of KRPipelineManager::selectPipeline
Vulkan draw call refactoring
2022-07-05 22:08:05 -07:00
54e484bd71 Replacing glDraw commands with vkCmdDraw and populating PipelineInfo with vertex formats. 2022-07-05 21:40:26 -07:00
bbc0de400c Added PipelineInfo::vertexAttributes and PipelineInfo::modelFormat
KRPipelineManager::getPipeline now has just one version with two arguments.
Commented out GL version of getPipeline, to be later merged into the Vulkan version.
2022-07-05 21:27:41 -07:00
ad64ab506a Eliminated dead functions. 2022-07-04 22:21:28 -07:00