Commit Graph

  • e280ac486a Vertex data is now uploaded asynchronously, using staging buffers. kearwood 2022-07-12 00:48:53 -07:00
  • 96e57d9344 Streaming thread now calling KRDebive::streamStart() and KRDevice::streamEnd(). kearwood 2022-07-12 00:41:37 -07:00
  • 7ea1349fb9 Implemented Asynchronous upload (transfer queue) functions in KRDevice. kearwood 2022-07-12 00:31:30 -07:00
  • dfde4f876d KRDevice::createBuffer is now fallible. Staging buffer flags corrected. kearwood 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. kearwood 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. kearwood 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. kearwood 2022-07-11 22:27:44 -07:00
  • fed12dbc96 Moved debug label functionality to KRDevice::createBuffer kearwood 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. kearwood 2022-07-09 23:52:35 -07:00
  • 64341c4e90 Deleted commented dead code from KRCamera::renderPost kearwood 2022-07-09 23:42:43 -07:00
  • 73597a21c2 Removed no longer necessary glFinish call kearwood 2022-07-09 23:20:25 -07:00
  • d5635a4996 Converted debug_font shader to Vulkan glsl kearwood 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. kearwood 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) kearwood 2022-07-07 23:49:27 -07:00
  • ee77caba9b Updated hydra. Latest hydra version removes dead GL helper functions. kearwood 2022-07-07 23:20:50 -07:00
  • 5dd2068e1b Replaced GL draw calls with Vulkan in KRMesh kearwood 2022-07-07 23:18:22 -07:00
  • 44055d1e6a Replace ifdef guards with pragma once kearwood 2022-07-07 23:09:30 -07:00
  • c7f9277780 Update hydra kearwood 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. kearwood 2022-07-07 22:51:16 -07:00
  • 4f3b8ad584 KRMesh::renderSubmesh non-indexed format meshes now converted to Vulkan draw calls kearwood 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. kearwood 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. kearwood 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. kearwood 2022-07-07 00:23:14 -07:00
  • e976e94da1 Added index buffer support to KRMeshManager::KRVBOData::bind kearwood 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. kearwood 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. kearwood 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. kearwood 2022-07-06 23:04:43 -07:00
  • b7e4415b16 Inlined, removed wrapper function KRPipelineManager::selectPipeline kearwood 2022-07-06 21:59:50 -07:00
  • 8e9885b46c WIP Inlining KRPipelineManager::selectPipeline wrapper function. kearwood 2022-07-05 22:22:48 -07:00
  • d76ce2090d Eliminated one overload of KRPipelineManager::selectPipeline Vulkan draw call refactoring kearwood 2022-07-05 22:08:05 -07:00
  • 54e484bd71 Replacing glDraw commands with vkCmdDraw and populating PipelineInfo with vertex formats. kearwood 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. kearwood 2022-07-05 21:27:41 -07:00
  • ad64ab506a Eliminated dead functions. kearwood 2022-07-04 22:21:28 -07:00
  • 68c3831fde Added composite buffer render passes for deferred lighting path. Refactoring KRCamera::renderFrame to use render passes. Eliminate composite buffer binding GL code from KRCamera::renderFrame kearwood 2022-07-04 22:08:05 -07:00
  • 17113b59ea Removing no longer needed OpenGL code. kearwood 2022-07-04 21:20:43 -07:00
  • 943bbfda2f Added PipelineInfo::CullMode Replaced GL culling functions with CullMode pipeline option. kearwood 2022-07-04 20:49:46 -07:00
  • b801da7eb3 Blending and depth testing refactoring to Vulkan. Eliminating OpenGL state following. kearwood 2022-07-04 20:18:00 -07:00
  • 2e371386cf Added PipelineInfo::RasterMode::kOpaqueNoDepthWrite Refactored additional GL depth and blending state to use RasterMode kearwood 2022-07-03 21:52:54 -07:00
  • 44be42a4a8 VkPipelineColorBlendAttachmentState and VkPipelineDepthStencilStateCreateInfo are now driven by PipelineInfo::RasterMode kearwood 2022-07-03 21:33:52 -07:00
  • e0e51c3f07 Added PipeLineInfo::RasterMode::kOpaqueLessTest Refactored particles and additive effects to use PipelineInfo::RasterMode rather than direct GL calls. kearwood 2022-07-03 21:13:39 -07:00
  • 13412cb5c5 Comment type-o kearwood 2022-07-03 20:54:23 -07:00
  • 6bb2309d07 Fixed errors in comment describing PipelineInfo::RasterMode kearwood 2022-07-02 21:04:20 -07:00
  • 8db6a4313f Combined depth test and depth write modes into PipelineInfo.rasterMode. kearwood 2022-07-02 21:01:02 -07:00
  • d292c86b6e Eliminated PipelineInfo.bAlphaBlend as it can be determined from rasterMode kearwood 2022-07-02 20:23:09 -07:00
  • d571bcbdc3 Refactor OpenGL alpha blending to use PipelineInfo.rasterMode kearwood 2022-07-02 20:07:11 -07:00
  • 0f8feb669c Fix Azure CI, MSVC CMake integration. Update configure batch script to VS 2022 kearwood 2022-07-02 18:31:48 -07:00
  • d1b085ffb5 Moved PipelineInfo to KRPipeline.h Added PipelineInfo::RasterMode Kearwood Gilbert 2022-04-14 00:48:03 -07:00
  • 767ba5932b Implement KRNode::RenderInfo Use KRNode::RenderInfo to reduce render related argument counts and pass KRSurface through render functions. Refactor render functions to use KRNode::RenderInfo Kearwood Gilbert 2022-04-06 01:00:13 -07:00
  • 52c8ec2776 Reduced boilerplate needed to select and bind a KRPipeline Kearwood Gilbert 2022-04-05 22:25:19 -07:00
  • 858064fa4b Using KRPipelineManager::info struct to reduce number of parameters passed to KRPipelineManager::selectPipeline Kearwood Gilbert 2022-04-05 21:58:47 -07:00
  • 9e0136f051 Updating call sites to use struct argument version of KRPipelineManager::getPipeline Kearwood Gilbert 2022-04-04 02:00:01 -07:00
  • de5d6e64aa KRPipeline::getPipeline now accepts a struct to reduce argument count Kearwood Gilbert 2022-04-04 00:52:32 -07:00
  • 56abe4425f Remove KRStockGeometry as its now handled by KRMeshManager Kearwood Gilbert 2022-04-03 23:59:15 -07:00
  • 1877049526 Replace GLFloat with float Remove unimplemented function Kearwood Gilbert 2022-04-03 23:54:10 -07:00
  • 2f104edf7c Remove MacOS and IOS OpenGL code Kearwood Gilbert 2022-04-03 23:40:16 -07:00
  • 99394820fc Removed GLFW dependency Kearwood Gilbert 2022-04-03 23:31:27 -07:00
  • 3784c0fc0b Remove XCode Project and associated interfaces which no longer match current Kraken API Kearwood Gilbert 2022-04-03 23:23:06 -07:00
  • c49e177264 Removing RenderFrame parameters no longer needed with Vulkan and KRSurface Kearwood Gilbert 2022-04-03 23:12:34 -07:00
  • c51f776899 Replace GLFloats with floats. Refactor KRCamera and KRScene to use width and height from KRSurface rather than stack and members. Kearwood Gilbert 2022-04-03 23:05:30 -07:00
  • b6922dc63f License header year bump Kearwood Gilbert 2022-04-03 21:56:23 -07:00
  • f48fb5b14f Vulkan Refactoring - Implemented KRSwapchain Kearwood Gilbert 2022-04-03 21:49:54 -07:00
  • c58487c00f KRRenderPass now selected by KRCamera Kearwood Gilbert 2022-03-27 22:37:15 -07:00
  • 5e8c9223ac Moved frameIndex to KRSurface Kearwood Gilbert 2022-03-27 22:14:41 -07:00
  • 36f804e176 Implemented KRRenderPass::begin and KRRenderPass::end Kearwood Gilbert 2022-03-27 21:56:45 -07:00
  • 2818deb0e3 Vulkan Refactoring - Added KRRenderPass, WIP refactorign KRScene::RenderFrame Kearwood Gilbert 2022-03-27 21:34:19 -07:00
  • 9bdfb0feea Attached depth buffer to KRSurface and enabled depth testing in render pass Kearwood Gilbert 2022-03-01 23:53:42 -08:00
  • adfaf21cda Creating depth buffer for Vulkan Kearwood Gilbert 2022-03-01 23:24:55 -08:00
  • 00eeb8bcb4 KRPipeline's are now created with the passed in KRMesh::model_format_t Kearwood Gilbert 2022-02-28 22:04:24 -08:00
  • 4cb3566906 Test shader now using vertex buffer. Fixed CMake script so that shaders are now recompiled and re-bundled without having to re-building Kraken SDK. Kearwood Gilbert 2022-02-28 21:27:25 -08:00
  • b34ba9b096 Removing more OpenGL code from KRMeshManager Kearwood Gilbert 2022-02-28 20:54:03 -08:00
  • 1a948915c6 Remove OpenGL code from KRMeshManager Kearwood Gilbert 2022-02-28 20:36:54 -08:00
  • b306670e9c Refactoring to pass command buffer through render calls, enabling Vulkan version of KRVBOData::Bind to replace the OpenGL version Kearwood Gilbert 2022-02-28 20:14:22 -08:00
  • 0a18ddcbb3 Vulkan refactoring - passing VkCommandBuffer down through node render functions Kearwood Gilbert 2022-02-28 01:41:04 -08:00
  • 6a56c9ebfe Added Vulkan versions of KRVBOData::bind and KRPipeline::bind Kearwood Gilbert 2022-02-28 01:07:32 -08:00
  • a26ee33e4c WIP Refactoring... Kearwood Gilbert 2022-02-28 00:17:12 -08:00
  • df344d0d7b Vertex attributes are now bound automatically to shaders using spirv reflection. Kearwood Gilbert 2022-02-27 23:51:29 -08:00
  • 3c948e2337 WIP Vulkan Refactoring and reflection driven vertex attribute binding Kearwood Gilbert 2022-02-27 22:10:17 -08:00
  • d24df948c1 Added SPIRV reflection information to KRShader Kearwood Gilbert 2022-02-21 20:20:22 -08:00
  • e9df34b191 Added SPIRV-Reflect library Kearwood Gilbert 2022-02-21 19:35:55 -08:00
  • 400a7e0061 WIP Binding vertex buffers kearwood 2022-02-13 22:22:51 -08:00
  • 8414c1c0bb Added GPU debug label for shader modules kearwood 2022-02-13 21:25:57 -08:00
  • 7166a21b81 Added GPU debug labels for vertex and index buffers with VK_EXT_debug_utils kearwood 2022-02-07 23:38:57 -08:00
  • 227a2acaf4 Now copying vertex and index buffers to GPUs kearwood 2022-01-22 01:58:06 -08:00
  • 100ab0d3de KRDeviceManager::getDeviceInfo refactored to KRDeviceManager::getDevice, and now returns a unique_ptr. Now freeing vertex and index buffers. kearwood 2022-01-22 01:32:32 -08:00
  • ad596a82f9 WIP Index and Vertex buffer allocation kearwood 2022-01-22 01:01:08 -08:00
  • 0330d5b4fe Commented out now broken Mesh loading OpenGL code. (Vulkan refactoring WIP) kearwood 2022-01-21 23:38:36 -08:00
  • d093cc6f96 Removed KRMeshManager's first-frame hackery for loading static meshes. They now load systematically. kearwood 2022-01-21 23:32:00 -08:00
  • 739111ed2d Creating VmaAllocator object for each Vulkan device. kearwood 2022-01-15 03:34:41 -08:00
  • 2df55cf31c Eliminated KRContext::KRENGINE_MAX_SHADER_HANDLES kearwood 2022-01-15 02:25:13 -08:00
  • a178ed8bcc Hard-coded dummy values for streamer thread configuration. (To be replaced after Vulkan conversion) Eliminated KRContext::KRENGINE_MAX_SHADER_HANDLES kearwood 2022-01-15 02:24:08 -08:00
  • 1053eb487c Imported Vulkan Memory Allocator submodule kearwood 2022-01-14 18:37:14 -08:00
  • 3a06069184 Kraken tests now use hidpi aware windows Kearwood Gilbert 2021-08-18 01:20:00 -07:00
  • e485518227 Add explicit surface resize detection and handle window minimize. Kearwood Gilbert 2021-08-18 00:58:42 -07:00
  • 2102faf4e5 Recreating swap chain when invalidated Kearwood Gilbert 2021-08-18 00:41:31 -07:00
  • 42717276b5 Starting streamer thread Kearwood Gilbert 2021-08-17 01:49:30 -07:00
  • e046c1638a Remove dead code Kearwood Gilbert 2021-08-17 01:30:15 -07:00
  • f0b8dbbac5 Remove dead code Kearwood Gilbert 2021-08-17 01:25:53 -07:00
  • fc55a5d490 Session owned managers are now using std::unique_ptr Kearwood Gilbert 2021-08-17 01:22:18 -07:00
  • 5d0a4bc9d2 Remove commented code Kearwood Gilbert 2021-08-17 00:38:11 -07:00
  • a3fc0d84d4 Implemented KRDeviceManager Kearwood Gilbert 2021-08-17 00:20:56 -07:00