Commit Graph

1220 Commits

Author SHA1 Message Date
Benau
b2404aadd2 Reduce instance data size
MoltenVK has no DrawIndex support yet
2022-10-02 16:41:09 +08:00
Benau
e1f8294008 Use dedicated buffer for sbo 2022-10-01 12:20:35 +08:00
Benau
421293b8e9 Add shader draw parameters detection 2022-09-30 14:42:06 +08:00
Benau
86c349e5f2 Properly check and enable vulkan extensions 2022-09-29 16:01:27 +08:00
Benau
11a168b4bf Avoid error when particle size is zero 2022-09-26 10:36:01 +08:00
Dmitry Marakasov
dd511638db Initialize vulkan handles properly 2022-09-20 23:47:45 +03:00
Benau
bf0db0497b Don't throw when missing texture during ondemand loading
It can happen when the texture is deleted later
2022-09-19 10:24:55 +08:00
Benau
dd6768911d Build for armv7 windows
No installer as armv7 windows has no x86 emulation
2022-09-18 23:54:44 +08:00
Benau
f270b4acf8 Add particle rendering in vulkan 2022-09-18 11:31:06 +08:00
Benau
4d79ccdea5 Add different texture per draw call for billboard 2022-09-18 10:54:22 +08:00
Benau
50c22a5837 Use real transparent shader first in vulkan draw call 2022-09-18 08:18:47 +08:00
Benau
7199409de4 Fix vulkan projection matrix 2022-09-17 16:26:10 +08:00
Benau
b77160527c Fix texture matrix for gles2 driver 2022-09-15 09:01:55 +08:00
Benau
16173207ee Add colorization support for gles2 driver 2022-09-15 08:30:24 +08:00
Benau
787d157933 Add billboard rendering in vulkan 2022-09-14 16:19:38 +08:00
Benau
9804416a82 Fix transparent shader drawing order
Use the same order like current engine
2022-09-12 13:38:01 +08:00
Benau
bf8a411f01 Always use GESPMBuffer for GEVulkanDrawCall::m_materials key 2022-09-12 13:14:05 +08:00
Benau
23470bbde2 Add custom vertex color to instance data 2022-09-12 11:07:22 +08:00
Benau
7cc238e101 Remove friend class in GE::GESPMBuffer 2022-09-11 15:04:38 +08:00
Benau
76c39afd8b Add colorization for vulkan 2022-09-11 11:05:33 +08:00
Benau
4207714352 Use GE::GERenderInfo to draw ghost kart and ctf flag in vulkan 2022-09-06 15:46:05 +08:00
Benau
2d0c945dd8 Move RenderInfo class to GE 2022-09-05 16:22:04 +08:00
Benau
79bf026c74 Don't check for descriptor indexing properties on non-apple devices
Some drivers (like ivybridge on linux) report incorrect values and
make graphics pipeline creation crash later
2022-09-04 09:05:00 +08:00
Benau
d93b5d3b8d Fix hang when switching kart in selection screen for vulkan 2022-09-03 12:04:44 +08:00
Benau
784b77723c Add missing vkCmdBindDescriptorSets for supportsBindMeshTexturesAtOnce 2022-09-03 10:30:54 +08:00
Benau
b0b9f44aeb Always use stable_sort to avoid flickering with alpha blending 2022-09-03 09:27:06 +08:00
Benau
d55eb56d78 Fix logic error in GEVulkanTexture::getTextureData 2022-09-02 19:37:37 +08:00
Benau
1eb19e5e13 Allow changing texture compression setting without restarting stk 2022-09-02 10:04:10 +08:00
Benau
0b4bf178d7 Add texture matrix support in vulkan 2022-09-02 09:07:43 +08:00
Benau
089dd025f1 Implement GEVulkanTexture::getTextureSize correctly 2022-08-31 13:09:41 +08:00
Benau
3db036d67f Fix data race when deleting GEVulkanTexture 2022-08-31 12:36:55 +08:00
Benau
4ceec85edc Fix infinite GEVulkanTexture::waitImageView if createImageView failed 2022-08-31 11:20:04 +08:00
Benau
38b995bf61 Avoid hangs if reloading textures too much 2022-08-31 11:08:48 +08:00
Benau
4f3dbb43a2 Fix bad gui after toggling fullscreen ingame 2022-08-29 14:55:02 +08:00
Benau
1f53895a25 Attempt to restore vulkan device after out focus in gnome fullscreen 2022-08-29 12:30:18 +08:00
Benau
d322720147 Add option to use original fullscreen code for vulkan 2022-08-29 10:30:31 +08:00
Benau
bba636263e Use fullscreen desktop for vulkan 2022-08-28 10:55:06 +08:00
Benau
e6f8dcfdb0 Make render scale configurable in ui for vulkan 2022-08-28 09:27:08 +08:00
Benau
8f061c6367 Remove depth attachement if rtt is used 2022-08-27 13:04:22 +08:00
Benau
d31281cb6f Add render scale support in vulkan 2022-08-27 12:49:17 +08:00
Benau
97e5064535 Use location, rotation and scale instead of model matrix in vulkan 2022-08-26 09:36:30 +08:00
Benau
514e3a50ad Fix uninitialized m_compressed_data 2022-08-25 15:20:04 +08:00
Benau
57c5446e55 Add GECompressorBPTCBC7 2022-08-25 15:13:23 +08:00
Benau
5699ede148 Draw skybox before transparent objects 2022-08-22 10:53:07 +08:00
Benau
4f9d40f3b2 Add GEVulkanSkyBoxRenderer 2022-08-21 14:09:56 +08:00
Benau
5aa70333ce Add GEVulkanArrayTexture 2022-08-20 15:44:38 +08:00
Benau
5c26ac73df Fix bottom skybox uv and revert custom irrlicht change 2022-08-19 11:26:07 +08:00
Benau
058aa45894 Increase sampler size for max 20 karts in game 2022-08-18 14:56:44 +08:00
Benau
f777e01a21 Make kart textures loading ondemand if needed 2022-08-13 11:44:06 +08:00
Benau
e0636495f0 Add ondemand texture loading for vulkan 2022-08-12 13:07:53 +08:00
Benau
eace871c66 Add getImageSize for all image loaders 2022-08-11 14:46:00 +08:00
Benau
c698d4a601 Wait for GEVulkanCommandLoader to finish task before deleting textures 2022-08-10 11:07:54 +08:00
Benau
ed4dcc24c6 Fix CImageLoaderJPG::isALoadableFileFormat according to upstream 2022-08-09 10:20:04 +08:00
Benau
1b42688cbf Enable vulkan texture compression in ui 2022-08-09 10:03:56 +08:00
Benau
d7390a1824 Add GECompressorASTC4x4 2022-08-07 15:33:54 +08:00
Benau
93dc6ed770 Fix GEVulkanTexture::getTextureData for compressed internal format 2022-08-06 11:01:54 +08:00
Benau
b4b0ddc620 Add GECompressorS3TCBC3 2022-08-06 09:48:11 +08:00
Benau
118fc7fa96 Add GEMipmapGenerator 2022-08-05 12:15:08 +08:00
Benau
211c901335 Add checking for compute in main queue 2022-08-04 10:56:29 +08:00
Benau
c96881208a Use vkResetCommandPool for every frame commands 2022-08-03 13:44:59 +08:00
Benau
00e7b04f13 Add code to render vbo and ibo individually for some devices 2022-08-02 10:21:07 +08:00
Benau
0ad22efcf7 Re-order the buffer to use less memory 2022-08-02 00:56:11 +08:00
Benau
403f748b4a Add dynamic descriptor code for some devices 2022-08-02 00:25:36 +08:00
Benau
72b177c354 Fix incorrect vertex attribute 2022-08-01 09:13:20 +08:00
Benau
331ae9a30f Fix crash when GEVulkanTexture::getTextureData failed 2022-08-01 00:59:43 +08:00
Benau
83595d55a7 Add missing dstAccessMask for indirect command 2022-07-31 10:43:11 +08:00
Benau
2696ef2567 Add shader to render ghost kart 2022-07-30 09:03:56 +08:00
Benau
1a953b8a6c Add grass shader 2022-07-29 10:51:14 +08:00
Benau
c2c8468fa8 Sort drawing based on nodes surface area 2022-07-28 15:48:06 +08:00
Benau
e9d3152c1a Add more shaders 2022-07-28 13:37:09 +08:00
Benau
3f99e63a3c Don't use sampler array for non-single texture descriptor
Devices like Apple A8 don't support it
2022-07-27 13:54:22 +08:00
Benau
6d74e84609 Reduce vram usage by removing bones data in static spm 2022-07-27 11:45:09 +08:00
Benau
d37a3b8c7e Sort materials if needed 2022-07-26 13:21:07 +08:00
Benau
d4b2b03174 Add animated mesh rendering 2022-07-26 12:47:31 +08:00
Benau
8e1de345fb Add animation support in GEVulkanAnimatedMeshSceneNode 2022-07-26 00:12:35 +08:00
Benau
b75dec1fbc Move struct Armature to GE 2022-07-25 10:54:27 +08:00
Benau
61b87d3b31 Convert irrlicht mesh for addSphere 2022-07-25 10:05:46 +08:00
Benau
819b3ad27f Add minimap rendering 2022-07-25 09:41:35 +08:00
Benau
a2228adef1 Fix padding size calculation 2022-07-24 14:32:37 +08:00
Benau
593f78a230 Move MiniGLM to graphics engine folder 2022-07-24 12:22:06 +08:00
Benau
da0cce6cd6 Add render to texture support in GEVulkanDriver 2022-07-24 11:38:02 +08:00
Benau
99d565f961 Allow using custom command buffer for draw call 2022-07-24 08:54:47 +08:00
Benau
9f25652455 Fix one possible crash 2022-07-23 15:10:45 +08:00
Benau
d325e33fc0 Use multi-draw indirect if supported 2022-07-23 14:02:37 +08:00
Benau
7f31ffa552 Add anisotropic samplers 2022-07-23 10:58:37 +08:00
Benau
e991e06640 Implement high dpi support in sdl2 properly 2022-07-22 21:10:51 +08:00
Benau
bf77863c53 Simplify OnRegisterSceneNode of vulkan mesh nodes 2022-07-22 08:18:18 +08:00
Benau
3d0d666e09 Add texture mapping 2022-07-21 12:26:06 +08:00
Benau
fec21afc8e Add FileIncluder to shaderc compiler 2022-07-20 13:40:55 +08:00
Benau
e9924357cd Add polycount display in GEVulkanDriver 2022-07-20 10:37:09 +08:00
Benau
f768badee0 Add initial 3d rendering 2022-07-19 15:56:08 +08:00
Benau
44b2468003 Add GEVulkanDrawCall 2022-07-18 13:28:07 +08:00
Benau
5853d618a6 Add GEVulkanMeshSceneNode and GEVulkanAnimatedMeshSceneNode 2022-07-17 16:06:52 +08:00
Benau
fc7413800c Use GEVulkanTextureDescriptor on GEVulkan2dRenderer 2022-07-16 09:54:40 +08:00
Benau
713ab53272 Add GEVulkanTextureDescriptor to avoid refilling every frame 2022-07-15 14:09:57 +08:00
Benau
3769c18288 Remove hardcoded shader names 2022-07-14 15:25:16 +08:00
Benau
15eec8a8d2 Combine vbo and ibo buffers 2022-07-14 10:44:28 +08:00
Benau
c864b9bd60 Use vma in GEVulkanMeshCache 2022-07-13 12:09:45 +08:00
Benau
cf8bafaab3 Use vma in GEVulkanDynamicBuffer 2022-07-13 11:23:08 +08:00
Benau
b0f91ff33d Use vma in GEVulkanTexture 2022-07-12 15:46:33 +08:00