3df8433205
Added KRPipeline::updateDescriptorSets
...
WIP creating and updating descriptor sets for KRPipeline binding.
2022-09-20 18:54:01 -07:00
5ab035b076
Implemented KRDevice::createDescriptorSets
2022-09-20 18:23:45 -07:00
ee091aa1fe
KRDevice now allocates a global descriptor pool per each device.
2022-09-20 18:12:18 -07:00
a3ee2845d1
Vulkan refactoring - Removed OpenGL state mirroring code
2022-09-19 00:14:42 -07:00
3376f3e4be
Vulkan Refactoring - Eliminated KRTextureManager::_setActiveTexture and KRTextureManager::m_iActiveTexture
2022-09-19 00:07:41 -07:00
d50b7f7831
Vulkan Refactoring - Eliminated KRTextureManager::m_boundTextures and KRTextureManager::m_boundTextureHandles
2022-09-19 00:04:03 -07:00
be6c3a148e
Vulkan Refactoring - Updated KRTextureManager::selectTexture call sites to use KRShader::setImageBinding
2022-09-18 23:59:08 -07:00
9a84a3a07b
Removed unused texture sampler binding for dust_particle shader
2022-09-18 23:28:28 -07:00
f4bd0d6340
Removing OpenGL code related to textures
2022-09-18 23:19:30 -07:00
8306202cf1
WIP Creating structures in KRPipeline to cache descriptor set binding reflection data.
...
Added stub function, KRPipeline::setImageBinding
2022-09-15 20:33:41 -07:00
183f7057e2
Added KRPipeline::StageInfo to hold cached SPV reflection information used for dynamic descriptor set and push constant binding.
2022-09-15 20:10:25 -07:00
327167c9b1
Expanded KRSurface::m_imageAvailableSemaphores and m_renderFinishedSemaphores to have one semaphore per frame in flight. (Missed files in prior commit)
2022-09-15 19:20:10 -07:00
cc4efe34e1
kMaxGraphicsCommandBuffers is now initialized to KRENGINE_MAX_FRAMES_IN_FLIGHT rather than using a magic number.
2022-09-15 19:18:54 -07:00
4d0158c0ec
Added KRSurface::m_inFlightFences.
...
Now properly handling multiple frames in flight and waiting on fences when the CPU catches up.
2022-09-15 00:26:23 -07:00
478669ed81
Expanded KRSurface::m_imageAvailableSemaphores and m_renderFinishedSemaphores to have one semaphore per frame in flight.
2022-09-14 23:59:52 -07:00
5b70ce077d
Add KRENGINE_MAX_FRAMES_IN_FLIGHT constant
2022-09-14 23:41:03 -07:00
9b46917171
Added requirement for Vulkan SPV_EXT_descriptor_indexing extension.
2022-09-13 18:18:37 -07:00
5ffc3d9b9b
Refactor - DescriptorSet and DescriptorManager are now UniformBuffer and UniformBufferManager.
2022-09-13 18:18:25 -07:00
175c4e2008
Add KRDescriptorManager and KRDescriptorSet classes with stub functions.
2022-09-13 17:31:41 -07:00
5ed6b8eccd
Push constants are now supported for all stages.
2022-09-09 00:38:46 -07:00
aeaed68efb
Moved ShaderStage to KRShader and expanded to include all stages.
...
Added mapping functions, getShaderStageFromExtension and getShaderStageFlagBitsFromShaderStage.
KRShader::m_stage is now typed as ShaderStage.
2022-09-09 00:36:22 -07:00
f20f7f73d6
Centralized shader file sub-extension to shader stage mapping to KRShader.
2022-09-08 23:58:24 -07:00
e695bca3f9
Refactoring to rename uniform related functions and members to reflect that they are actually push constants after the Vulkan refactoring.
2022-09-07 23:48:46 -07:00
10f9c17cf1
Now initializing VkDescriptorSetLayout for each pipeline using SPV reflection.
2022-09-07 22:33:07 -07:00
0d848bd53b
Now using more VkSamplerCreateInfo for hash generation.
2022-09-07 22:32:37 -07:00
414ec8ca81
Removed no longer relevant comment.
2022-08-30 00:38:10 -07:00
8594c7d4b1
Implemented KRSampler::destroy
2022-08-30 00:30:22 -07:00
6682cbdedd
Implemented KRSampler::createSamplers
2022-08-30 00:18:47 -07:00
0e5fee2d80
Implemented KRSampler::getSampler
2022-08-29 23:59:02 -07:00
e318a5b4aa
Added KRSamplerManager::DEFAULT_CLAMPED_SAMPLER and DEFAULT_WRAPPING_SAMPLER
...
Added KRSamplerManager::init
2022-08-25 00:00:55 -07:00
191167f9d3
Added KRSamplerManager::destroy()
2022-08-19 20:10:03 -07:00
9f245a9765
Implemented KRSamplerManager
2022-08-19 20:02:11 -07:00
5c75dc754a
Fix build issue, removed unneeded stub function.
2022-08-18 19:05:24 -07:00
42e8365751
Added KRSampler and KRSamplerManager classes. Marked stub functions to be implemented.
2022-08-18 17:57:11 -07:00
cef2372ce8
Modernization - KRMesh::Submesh::vbo_data_blocks is now a vector<shared_ptr>.
2022-08-17 01:56:01 -07:00
2391ed9785
Modernization - KRMesh::m_submeshes now contains KRMesh::Submesh objects rather than pointers. Insertion done with emplace.
2022-08-16 20:08:30 -07:00
2085908017
Added KRShaderManager::Includer
...
Now able to include shaders from other shaders with GL_GOOGLE_include_directive.
Added vulkan_test_include.glsl and included it from vulkan_test.vert.
2022-08-15 19:48:59 -07:00
7433d54c16
Auto format C++ source
2022-08-08 01:07:26 -07:00
c5a640e22d
Updated editorconfig with C++ code style
2022-08-08 00:21:57 -07:00
d3abb3ef0d
Updated hydra library
2022-08-08 00:21:31 -07:00
f5855aeaec
Corrected normals for KRMeshSphere so the sphere will have a smooth surface.
...
Disabled KRMesh::optimizeIndexes as it is crashing with certain meshes, such as those generated by KRMeshSphere
2022-08-08 00:09:02 -07:00
9b31914371
Added VS editorconfig for C++ formatting style
2022-08-07 23:56:20 -07:00
732560f732
Separate push constants can now be sent to vertex and fragment stages.
2022-08-06 00:14:21 -07:00
29d928ca29
Eliminated static_cast from KRPipeline::hasUniform
...
KRPipeline::setUniform now updates push constants for all stages
2022-08-05 23:44:46 -07:00
347a258c99
Fixed bug that caused indexed strip meshes to be changed to indexed triangle meshes when optimized.
2022-08-03 22:08:32 -07:00
5f32d4dede
KRENGINE_ATTRIB_..._SHORT types are now mapped to equivalent Vulkan ..._SNORM types.
2022-08-02 02:15:46 -07:00
b714f7b52a
Reduced verbosity of KRPipeline::Uniform
2022-08-02 01:31:13 -07:00
06f4056887
Added KRPipeline::Uniform enum class to replace existing untyped enum.
2022-08-02 01:04:00 -07:00
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