Commit Graph

  • c7ed12db80 Corrected call sites of KRTexture2D::uploadTexture that were still sending a GLenum as the first argument. kearwood 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. kearwood 2022-07-18 22:54:45 -07:00
  • c8af34bc0b Vulkan refactoring - Eliminated KRTexture::m_iHandle kearwood 2022-07-18 22:30:36 -07:00
  • 41679f0497 Bump year in shader license headers kearwood 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. kearwood 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 kearwood 2022-07-16 00:45:17 -07:00
  • 22b871ad2f Removed unnecessary check for maximum Vulkan allocator count in KRTexture2D::createGPUTexture kearwood 2022-07-16 00:22:53 -07:00
  • 559df3766e KRTexture::createGLTexture renamed to createGPUTexture. Updated all child classes. kearwood 2022-07-16 00:17:25 -07:00
  • 41a1f3bd89 Refactored KRTexture2D::createGLTexture from OpenGL to Vulkan kearwood 2022-07-16 00:12:32 -07:00
  • e61f8aa7d1 Added VkMemoryPropertyFlags argument to KRDevice::createImage kearwood 2022-07-16 00:03:15 -07:00
  • 3d6dd727c2 Added pure virtual function, KRTexture2D::GetDimensions(). Implemented GetDimensions in all KRTexture2D sub classes. kearwood 2022-07-15 23:57:49 -07:00
  • 003bee0d25 Added KRDevice::createImage kearwood 2022-07-15 23:53:42 -07:00
  • b857654cf6 Refactored KRTexture::resize for Vulkan. kearwood 2022-07-14 00:00:55 -07:00
  • 1d11be0e61 Refactored KRTexture::_swapHandles for Vulkan. Added KRTexture::m_haveNewHandles. kearwood 2022-07-13 23:44:43 -07:00
  • 85847fd2e0 Beginning refactoring of KRTexture for Vulkan. Added KRTexture::TextureHandle. kearwood 2022-07-13 23:24:46 -07:00
  • 0382c15fe3 Re-enabling KRCamera::renderPost kearwood 2022-07-13 22:54:10 -07:00
  • 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