dfde4f876d
KRDevice::createBuffer is now fallible. Staging buffer flags corrected.
kearwood2022-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.
kearwood2022-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.
kearwood2022-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.
kearwood2022-07-11 22:27:44 -07:00
fed12dbc96
Moved debug label functionality to KRDevice::createBuffer
kearwood2022-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.
kearwood2022-07-09 23:52:35 -07:00
64341c4e90
Deleted commented dead code from KRCamera::renderPost
kearwood2022-07-09 23:42:43 -07:00
73597a21c2
Removed no longer necessary glFinish call
kearwood2022-07-09 23:20:25 -07:00
d5635a4996
Converted debug_font shader to Vulkan glsl
kearwood2022-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.
kearwood2022-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)
kearwood2022-07-07 23:49:27 -07:00
ee77caba9b
Updated hydra. Latest hydra version removes dead GL helper functions.
kearwood2022-07-07 23:20:50 -07:00
5dd2068e1b
Replaced GL draw calls with Vulkan in KRMesh
kearwood2022-07-07 23:18:22 -07:00
44055d1e6a
Replace ifdef guards with pragma once
kearwood2022-07-07 23:09:30 -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.
kearwood2022-07-07 22:51:16 -07:00
4f3b8ad584
KRMesh::renderSubmesh non-indexed format meshes now converted to Vulkan draw calls
kearwood2022-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.
kearwood2022-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.
kearwood2022-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.
kearwood2022-07-07 00:23:14 -07:00
e976e94da1
Added index buffer support to KRMeshManager::KRVBOData::bind
kearwood2022-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.
kearwood2022-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.
kearwood2022-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.
kearwood2022-07-06 23:04:43 -07:00
b7e4415b16
Inlined, removed wrapper function KRPipelineManager::selectPipeline
kearwood2022-07-06 21:59:50 -07:00
d76ce2090d
Eliminated one overload of KRPipelineManager::selectPipeline Vulkan draw call refactoring
kearwood2022-07-05 22:08:05 -07:00
54e484bd71
Replacing glDraw commands with vkCmdDraw and populating PipelineInfo with vertex formats.
kearwood2022-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.
kearwood2022-07-05 21:27:41 -07:00
ad64ab506a
Eliminated dead functions.
kearwood2022-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
kearwood2022-07-04 22:08:05 -07:00
17113b59ea
Removing no longer needed OpenGL code.
kearwood2022-07-04 21:20:43 -07:00
b801da7eb3
Blending and depth testing refactoring to Vulkan. Eliminating OpenGL state following.
kearwood2022-07-04 20:18:00 -07:00
2e371386cf
Added PipelineInfo::RasterMode::kOpaqueNoDepthWrite Refactored additional GL depth and blending state to use RasterMode
kearwood2022-07-03 21:52:54 -07:00
44be42a4a8
VkPipelineColorBlendAttachmentState and VkPipelineDepthStencilStateCreateInfo are now driven by PipelineInfo::RasterMode
kearwood2022-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.
kearwood2022-07-03 21:13:39 -07:00
6bb2309d07
Fixed errors in comment describing PipelineInfo::RasterMode
kearwood2022-07-02 21:04:20 -07:00
8db6a4313f
Combined depth test and depth write modes into PipelineInfo.rasterMode.
kearwood2022-07-02 21:01:02 -07:00
d292c86b6e
Eliminated PipelineInfo.bAlphaBlend as it can be determined from rasterMode
kearwood2022-07-02 20:23:09 -07:00
d571bcbdc3
Refactor OpenGL alpha blending to use PipelineInfo.rasterMode
kearwood2022-07-02 20:07:11 -07:00
0f8feb669c
Fix Azure CI, MSVC CMake integration. Update configure batch script to VS 2022
kearwood2022-07-02 18:31:48 -07:00
d1b085ffb5
Moved PipelineInfo to KRPipeline.h Added PipelineInfo::RasterMode
Kearwood Gilbert2022-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 Gilbert2022-04-06 01:00:13 -07:00
52c8ec2776
Reduced boilerplate needed to select and bind a KRPipeline
Kearwood Gilbert2022-04-05 22:25:19 -07:00
858064fa4b
Using KRPipelineManager::info struct to reduce number of parameters passed to KRPipelineManager::selectPipeline
Kearwood Gilbert2022-04-05 21:58:47 -07:00
9e0136f051
Updating call sites to use struct argument version of KRPipelineManager::getPipeline
Kearwood Gilbert2022-04-04 02:00:01 -07:00
de5d6e64aa
KRPipeline::getPipeline now accepts a struct to reduce argument count
Kearwood Gilbert2022-04-04 00:52:32 -07:00
56abe4425f
Remove KRStockGeometry as its now handled by KRMeshManager
Kearwood Gilbert2022-04-03 23:59:15 -07:00
1877049526
Replace GLFloat with float Remove unimplemented function
Kearwood Gilbert2022-04-03 23:54:10 -07:00
3784c0fc0b
Remove XCode Project and associated interfaces which no longer match current Kraken API
Kearwood Gilbert2022-04-03 23:23:06 -07:00
c49e177264
Removing RenderFrame parameters no longer needed with Vulkan and KRSurface
Kearwood Gilbert2022-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 Gilbert2022-04-03 23:05:30 -07:00
00eeb8bcb4
KRPipeline's are now created with the passed in KRMesh::model_format_t
Kearwood Gilbert2022-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 Gilbert2022-02-28 21:27:25 -08:00
b306670e9c
Refactoring to pass command buffer through render calls, enabling Vulkan version of KRVBOData::Bind to replace the OpenGL version
Kearwood Gilbert2022-02-28 20:14:22 -08:00
0a18ddcbb3
Vulkan refactoring - passing VkCommandBuffer down through node render functions
Kearwood Gilbert2022-02-28 01:41:04 -08:00
6a56c9ebfe
Added Vulkan versions of KRVBOData::bind and KRPipeline::bind
Kearwood Gilbert2022-02-28 01:07:32 -08:00
7166a21b81
Added GPU debug labels for vertex and index buffers with VK_EXT_debug_utils
kearwood2022-02-07 23:38:57 -08:00
227a2acaf4
Now copying vertex and index buffers to GPUs
kearwood2022-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.
kearwood2022-01-22 01:32:32 -08:00
ad596a82f9
WIP Index and Vertex buffer allocation
kearwood2022-01-22 01:01:08 -08:00
0330d5b4fe
Commented out now broken Mesh loading OpenGL code. (Vulkan refactoring WIP)
kearwood2022-01-21 23:38:36 -08:00
d093cc6f96
Removed KRMeshManager's first-frame hackery for loading static meshes. They now load systematically.
kearwood2022-01-21 23:32:00 -08:00
739111ed2d
Creating VmaAllocator object for each Vulkan device.
kearwood2022-01-15 03:34:41 -08:00