Commit Graph

2632 Commits

Author SHA1 Message Date
Jérôme Leclercq d622a75d73 Add BufferUsage_Dynamic
Since OpenGL screams in performance warning because of a GL_STATIC_DRAW buffer being updated from another buffer
2020-09-02 17:19:52 +02:00
Jérôme Leclercq b85a734e6e Utility/OBJParser: Make OBJ meshes order deterministic 2020-09-02 16:30:31 +02:00
Jérôme Leclercq d05df45cb6 Fix EGL context sharing
It seems contexts must be part of the same display to be shared, and that using default display with window isn't an issue on Windows/X11
2020-09-02 15:40:57 +02:00
Jérôme Leclercq bc2f18c852 OpenGLRenderer: Try to fix EGLContext sharing with X11 2020-09-01 20:10:09 +02:00
Jérôme Leclercq f4186fdeac Fix context sharing 2020-09-01 20:01:36 +02:00
Jérôme Leclercq c4e63a582c OpenGLRenderer: initial support for X11 2020-09-01 19:49:50 +02:00
Jérôme Leclercq c7b0d103e1 OpenGLRenderer: remove opengl32 dependency on Linux 2020-09-01 19:28:10 +02:00
Jérôme Leclercq e6c2302927 Renderer: Add prefix for Linux 2020-09-01 19:24:30 +02:00
Jérôme Leclercq 424e6437c1 VulkanRenderer: Enable Wayland/XLib support 2020-09-01 19:20:59 +02:00
Jérôme Leclercq 7ea0b223ec Linux fixes 2020-09-01 19:18:27 +02:00
Jérôme Leclercq ae34533595 Minor fixes 2020-09-01 18:47:08 +02:00
Jérôme Leclercq 7d2673eabd Shader: Fix shader serialization 2020-09-01 18:46:57 +02:00
Jérôme Leclercq ef737a8ecd Add basic EGL support 2020-09-01 18:46:35 +02:00
Jérôme Leclercq 4dc0005c6f VulkanRenderer: Fix standard validation layers 2020-08-28 15:53:03 +02:00
Jérôme Leclercq ea8f34c45e Rename WGL folder from Win32 to WGL 2020-08-28 15:52:31 +02:00
Jérôme Leclercq 8d873a8307 Fix a lot of small errors/warnings 2020-08-28 15:42:19 +02:00
Jérôme Leclercq 0ff0425045 Some more fixes, hopefully GCC will stop shitting itself now 2020-08-27 23:22:13 +02:00
Jérôme Leclercq 4aee707bb4 Some more fixes 2020-08-27 21:43:19 +02:00
Jérôme Leclercq 36120b9501 Compilation fixes 2020-08-27 20:24:27 +02:00
Jérôme Leclercq b2a7e620e0 Merge branch 'master' into nazara-next 2020-08-27 20:12:36 +02:00
Jérôme Leclercq df51526841 Fix some compilation errors 2020-08-27 20:02:20 +02:00
Jérôme Leclercq 2a875c8bdc Remove Graphics module and fix compilation 2020-08-27 19:43:31 +02:00
Jérôme Leclercq 2873eaefaa SDK: Remove deprecated LuaBinding 2020-08-27 19:26:14 +02:00
Jérôme Leclercq 94523980fa Fix Audio & Physics compilation 2020-08-27 19:26:04 +02:00
Jérôme Leclercq a28635ec70 Merge pull request #326 from DigitalPulseSoftware/vulkan
Add OpenGL / Vulkan renderers
2020-08-27 18:38:21 +02:00
Jérôme Leclercq 51ec9741df OpenGLRenderer: Handle resize/minimize 2020-08-27 18:32:22 +02:00
Jérôme Leclercq 7c9dcdfbe4 Allocate command buffers from pools 2020-08-27 18:31:26 +02:00
Jérôme Leclercq cbdac32f5f VulkanRenderer: Handle window resize 2020-08-27 16:16:33 +02:00
Jérôme Leclercq 63f259b907 SpirvAstVisitor: Add safety assert 2020-08-24 16:49:59 +02:00
Jérôme Leclercq f5fa211609 ShaderAstCloner: Fix Swizzle case 2020-08-24 16:49:38 +02:00
Jérôme Leclercq ba777ebbca Shader/SpirvPrinter: Add settings 2020-08-24 16:49:14 +02:00
Jérôme Leclercq 77b66620c9 Refactor SpirV classes
SpirvStatementVisitor was merged with SpirvExpressionLoad
SpirvExpressionLoadAccessMember was renamed SpirvExpressionLoad
2020-08-23 21:56:30 +02:00
Jérôme Leclercq 93de44d293 Big SpirVWriter refactor 2020-08-23 18:32:28 +02:00
Jérôme Leclercq 66a14721cb Shader/Spirv: Put types and constants in the same section 2020-08-21 22:51:11 +02:00
Jérôme Leclercq cd23c01ace Shader: AccessMember can now access nested fields 2020-08-21 22:50:30 +02:00
Jérôme Leclercq 9df219e402 Add SpirvConstantCache
And unsigned int types for shaders
2020-08-20 01:05:16 +02:00
Jérôme Leclercq 0b507708f4 Shader/SpirvWriter: Split section to another class + improve variadic parameters support 2020-08-18 00:00:05 +02:00
Jérôme Leclercq 73e88a2573 Add Spir-V header/source generator 2020-08-17 23:59:08 +02:00
Jérôme Leclercq 608b80981d Fix OpenGL & Vulkan renderers 2020-08-11 00:13:00 +02:00
Jérôme Leclercq 1a12e18a36 Fix copyright dates and some defines 2020-08-11 00:01:49 +02:00
Jérôme Leclercq 837a6585a1 Split shader generation to a new module 2020-08-11 00:00:36 +02:00
Jérôme Leclercq 0313f2d0a6 Enable GL_DEBUG_OUTPUT 2020-08-09 18:43:44 +02:00
Jérôme Leclercq d9b34b4ba8 OpenGLRenderer: Handle GL_DEBUG_SEVERITY_NOTIFICATION 2020-08-09 18:41:28 +02:00
Jérôme Leclercq d4f60c174e OpenGLRenderer: Flip screenspace 2020-08-09 18:40:59 +02:00
Jérôme Leclercq ac7b523bc7 OpenGLRenderer: Fix textures 2020-08-09 18:38:58 +02:00
Jérôme Leclercq 0da2ee6c99 First rendering using Spir-V generated shaders \o/ 2020-08-09 00:24:07 +02:00
Jérôme Leclercq 3829f0a002 ShaderAstCloner: Improve code readability 2020-08-05 16:28:41 +02:00
Jérôme Leclercq d6d452d43d Add ShaderAstCloner 2020-08-05 15:30:23 +02:00
Jérôme Leclercq 74fb01af28 Rename a few classes 2020-08-04 15:31:47 +02:00
Jérôme Leclercq 7a5f91f740 SpivWriter WIP
We have debug label, annotations, types and constants. The big part missing is instructions
2020-08-04 01:35:30 +02:00
Jérôme Leclercq 7fd3264d08 Add FieldOffsets class 2020-08-04 01:33:52 +02:00
Jérôme Leclercq 7736312c2f ShaderNodes: Replace union by std::variant 2020-08-04 01:33:31 +02:00
Lynix 50bd150345 WIP 2020-08-02 20:42:51 +02:00
Lynix 10860ed562 Improve code 2020-07-31 12:36:37 +02:00
Lynix 2271432748 Renderer/ShaderValidator: Use ShaderVarVisitor instead of switch 2020-07-29 14:39:34 +02:00
Lynix a02dd3bf05 Renderer: Add ShaderRecursiveVisitor 2020-07-29 14:31:54 +02:00
Jérôme Leclercq 251810ca99 WIP SpirvWriter 2020-07-29 11:22:52 +02:00
Jérôme Leclercq 59add283cf Add shader type 2020-07-27 18:52:58 +02:00
Lynix aff617f147 Network: Replace some String by std::string 2020-07-25 14:32:53 +02:00
Jérôme Leclercq 063b7dd602 Renderer/GlslWriter: Add parenthesis where required (wip) 2020-07-22 14:48:15 +02:00
Jérôme Leclercq c6c301c9f5 ShaderNode: Fix BufferField remaining bugs 2020-07-22 14:47:57 +02:00
Jérôme Leclercq 7b1d712560 ShaderNode: Fix struct members serialization 2020-07-22 14:47:13 +02:00
Jérôme Leclercq 471194ec16 ShaderNode: Add PositionOutputValue 2020-07-22 14:47:00 +02:00
Jérôme Leclercq 5a350ee76b ShaderNode: Add Mat4x4 type and nodes 2020-07-22 14:46:44 +02:00
Jérôme Leclercq b441bab218 Renderer/ShaderNodes: Fix BinOp expression type 2020-07-22 14:45:40 +02:00
Jérôme Leclercq db945d11fb Renderer/GlslWriter: Fix generation bugs 2020-07-22 14:45:19 +02:00
Jérôme Leclercq f66758f99b Renderer/ShaderSerializer: Fix AccessMember 2020-07-22 14:44:49 +02:00
Jérôme Leclercq 5ce67f434b Finish BufferField 2020-07-20 20:41:22 +02:00
Jérôme Leclercq 042eb067a0 Move and rename functions 2020-07-20 11:21:31 +02:00
Jérôme Leclercq 405c020125 Set some struct in default scene for testing 2020-07-19 21:08:53 +02:00
Jérôme Leclercq 3c1c61fb5e Improve code 2020-07-19 21:08:43 +02:00
Jérôme Leclercq e342c88e64 ShaderNodes/InputValue: Fix output type when using Float1 2020-07-19 21:08:25 +02:00
Jérôme Leclercq 5258f0b61a ShaderNodes: Add BufferField node 2020-07-19 21:08:21 +02:00
Jérôme Leclercq 086f76fb97 Renderer/ShaderNodes: Add support for accessing struct fields 2020-07-19 21:05:46 +02:00
Jérôme Leclercq 1d2fb88198 Renderer: Rename enums
ExpressionType => BasicType
ShaderAst::Type => ShaderExpressionType
2020-07-16 18:34:58 +02:00
Jérôme Leclercq c7a8091e68 ShaderNode: Add buffers and structs 2020-07-14 22:00:17 +02:00
Jérôme Leclercq fbba281d14 Renderer: Add support for struct and UBO 2020-07-14 21:59:49 +02:00
Jérôme Leclercq cd01facd01 GlslWriter: Handle OpenGL ES precision qualifier 2020-07-08 22:52:33 +02:00
Jérôme Leclercq b076a517c6 Merge branch 'vulkan' into shader-nodes 2020-07-08 22:38:24 +02:00
ImperatorS79 ee93680083 Fix arrayLayers not being correctly computed in VulkanTexture.cpp for ImageType_2D_array 2020-07-08 22:32:50 +02:00
Jérôme Leclercq 5164294bec ShaderNodes: Add TextureEdit dialog 2020-07-04 22:52:17 +02:00
Jérôme Leclercq 33d94c05f3 ShaderNodes: Use PreviewValues instead of QImage 2020-07-03 22:53:00 +02:00
Jérôme Leclercq 83cf358d02 Physics2D/RigidBody2D: Fix EnableSimulation 2020-07-03 16:27:14 +02:00
Lynix 4f671873c1 Renderer: Add NazaraBinary shader "language" and handle it in OpenGLRenderer 2020-06-18 20:05:22 +02:00
Lynix 58e59be267 ShaderNode: Add compile to binary action 2020-06-18 20:04:39 +02:00
Lynix 74acf440fc Minor fixes 2020-06-18 20:04:25 +02:00
Lynix 691de5b5c4 Renderer/ShaderSerialize: Use ByteStream instead of ByteArray 2020-06-18 20:03:56 +02:00
Lynix bc490a2fe5 Renderer/GlslWriter: Fix double identifier bug 2020-06-18 20:03:33 +02:00
Lynix 66a98b234f Renderer/GlslWriter: Add environment 2020-06-18 20:03:22 +02:00
Lynix 736ca1c409 Renderer/ShaderAst: Add serialization 2020-06-17 20:09:21 +02:00
Lynix 0ff10bf1e2 Improve GLSL output when using intrinsic 2020-06-17 16:07:58 +02:00
Lynix f38bfdde8a ShaderAst: Big refactor + add binding/location support 2020-06-17 16:00:03 +02:00
Lynix 463b540739 ShaderEditor: Add VecFloatMul 2020-06-16 17:46:03 +02:00
Lynix 80527dec3e ShaderEditor: Add VecDot 2020-06-16 17:45:36 +02:00
Lynix d3db22ce22 ShaderEditor/VecBinOp: Add component check 2020-06-16 17:45:21 +02:00
Lynix 9b911ac4bc Renderer/ShaderAst: Minor fixes relative to float/vec multiplication 2020-06-16 17:44:54 +02:00
Lynix 90abb52e4e ShaderEditor: Fixes 2020-06-16 17:44:20 +02:00
Lynix 2258a4f87f Add ShaderValidator 2020-06-06 16:44:17 +02:00
Lynix 8467c79021 Renderer: Add shader serialization 2020-06-05 19:47:29 +02:00
Lynix de1c64253e Fix missing files 2020-06-04 18:31:43 +02:00