Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
cd9f071
Start mesh
tdecroyere Jul 31, 2024
ae0009f
Refactor samples
tdecroyere Aug 1, 2024
279d658
Obj mesh parsing
tdecroyere Aug 8, 2024
25e7569
Add MeshOptimizer to external
tdecroyere Aug 8, 2024
7052b0d
Meshlet builder
tdecroyere Aug 12, 2024
4c78e4c
Mesh shader rendering is working
tdecroyere Aug 14, 2024
db2f63e
Mesh rendering WIP
tdecroyere Aug 17, 2024
a7f7032
Add unit tests for depth compare
tdecroyere Aug 19, 2024
9cc0763
Add Pso Depth tests
tdecroyere Aug 19, 2024
baa0d41
Add blending PSO tests
tdecroyere Aug 20, 2024
158e9a8
Add PSO CullMode and FillMode tests
tdecroyere Aug 21, 2024
2515eb5
Add tests for Amplification shaders
tdecroyere Aug 22, 2024
cd15fdd
Implement Vulkan PSO and Depth buffer changes
tdecroyere Aug 23, 2024
f7ccf0c
Update task shader
tdecroyere Aug 24, 2024
c915608
Implement Apple Metal Depth buffer / Render Pso
tdecroyere Aug 25, 2024
732f436
Fix build error
tdecroyere Aug 26, 2024
a19f5f5
Remove amplification shaders
tdecroyere Aug 26, 2024
d420eb7
cimgui external ref
tdecroyere Aug 26, 2024
c8678e2
ImGui Update
tdecroyere Aug 27, 2024
e88dd67
ImGui WIP
tdecroyere Aug 27, 2024
14dbc4b
ImGui WIP
tdecroyere Aug 28, 2024
c7398e2
ImGui WIP
tdecroyere Aug 28, 2024
ea0e82a
Implement Viewport and Scissor tests
tdecroyere Aug 29, 2024
9c60d44
Add mouse wheel to ImGui
tdecroyere Aug 30, 2024
2069acb
Implement Metal scissor
tdecroyere Aug 30, 2024
1b0bd08
Fix vulkan graphics tests
tdecroyere Aug 31, 2024
2ca9349
IO Command Queue start
tdecroyere Sep 2, 2024
1063d84
Graphics IO exploration
tdecroyere Sep 10, 2024
8b99667
WIP SwitchPro Controller
tdecroyere Sep 19, 2024
9fc4871
Refactor samples and inputs
tdecroyere Nov 8, 2024
d69d304
Update Dualsense code
tdecroyere Nov 29, 2024
71117ae
Update DualSense code
tdecroyere Dec 6, 2024
543e41a
Dotnet update
tdecroyere Dec 11, 2024
666766b
Update Project
tdecroyere Dec 12, 2024
8397dbe
Merge branch 'hello-mesh' of https://github.com/double-buffer/element…
tdecroyere Dec 12, 2024
8d42c20
Refactor inputs
tdecroyere Dec 13, 2024
5a56698
Refactor tools to use path
tdecroyere Dec 16, 2024
cea2076
Add MeshLoader OBJ
tdecroyere Dec 17, 2024
0ce7176
Update camera controls
tdecroyere Dec 19, 2024
fe8d344
Tools project structure change
tdecroyere Dec 19, 2024
449c0fe
Rework scene compilation and loader
tdecroyere Dec 24, 2024
d6b191f
Fix Apple bugs
tdecroyere Dec 24, 2024
f34fdcd
Mesh loading buffer improvement
tdecroyere Dec 26, 2024
8c52eff
Add scene nodes
tdecroyere Dec 26, 2024
e3b861c
Add basic support to glTF scenes
tdecroyere Dec 27, 2024
2ed2083
Refactor resources build
tdecroyere Dec 27, 2024
a45a81f
Update metal-cpp version
tdecroyere Dec 28, 2024
f7aca1f
Start working on texture compiler.
tdecroyere Dec 29, 2024
1862128
Merge branch 'hello-mesh' of https://github.com/double-buffer/element…
tdecroyere Dec 29, 2024
26fde05
Basic texture compiler working with BC7
tdecroyere Dec 30, 2024
a1ec4b4
Load blank textures from the scene in renderer.
tdecroyere Dec 31, 2024
795084d
Refactor gpu buffer data upload/download
tdecroyere Dec 31, 2024
7fe308d
Mem management changes
tdecroyere Jan 1, 2025
60c928f
WIP in upload buffer management
tdecroyere Jan 3, 2025
673c8a7
WIP Texture loading
tdecroyere Jan 4, 2025
bdcb25f
WIP DirectX12 Texture loading
tdecroyere Jan 5, 2025
61114d1
Fix Apple Metal issues.
tdecroyere Jan 6, 2025
f4cd601
Put defines into a separate config file for metal
tdecroyere Jan 6, 2025
d4d2bac
Remove dotnet bindings
tdecroyere Jan 6, 2025
8ee0b51
Update external dep
tdecroyere Jan 7, 2025
ae6f91f
Rework external makefiles
tdecroyere Jan 7, 2025
1a26b8c
Refactor graphics tests
tdecroyere Jan 7, 2025
ab78864
Change dir structure
tdecroyere Jan 8, 2025
206e588
Fix meshletbuilder tests
tdecroyere Jan 8, 2025
591ec11
Test
tdecroyere Jan 8, 2025
b08f9fb
Test
tdecroyere Jan 8, 2025
6b099f4
Fix
tdecroyere Jan 8, 2025
a145115
Fix
tdecroyere Jan 8, 2025
f4a3694
Fix
tdecroyere Jan 8, 2025
fd6d36a
Fix
tdecroyere Jan 8, 2025
7d56310
Test
tdecroyere Jan 8, 2025
bd9f040
Fix
tdecroyere Jan 8, 2025
e1ddff6
Fix
tdecroyere Jan 8, 2025
7ffaa13
Fix
tdecroyere Jan 8, 2025
827ee4a
Fix
tdecroyere Jan 8, 2025
f05bd09
Fix
tdecroyere Jan 8, 2025
bd49928
Fix
tdecroyere Jan 8, 2025
7f9b5aa
Fix
tdecroyere Jan 8, 2025
1668c25
Fix
tdecroyere Jan 8, 2025
8331238
Fix
tdecroyere Jan 8, 2025
bfe48f0
Fix
tdecroyere Jan 8, 2025
c2d3c6c
Fix
tdecroyere Jan 8, 2025
04f4a90
Test clang-format
tdecroyere Jan 9, 2025
310beac
Finish basic UploadBufferPool implementation
tdecroyere Jan 10, 2025
e41bb90
Sampler in DirectX12
tdecroyere Jan 11, 2025
ca1d8aa
WIP Tangent space of OBJ
tdecroyere Jan 12, 2025
ddd3e84
Rework OBJ loading, GLTF loading, tangents and textures
tdecroyere Jan 14, 2025
a13c1de
Fixes
tdecroyere Jan 15, 2025
238c461
WIP Apple resources
tdecroyere Jan 15, 2025
81bf399
Merge branch 'hello-mesh' of https://github.com/double-buffer/element…
tdecroyere Jan 15, 2025
6d55cc9
Implement Metal samplers
tdecroyere Jan 15, 2025
036e2f4
Fix metal command list test
tdecroyere Jan 15, 2025
f37a0e3
Update Vulkan
tdecroyere Jan 17, 2025
b0c862c
Refactor project
tdecroyere Jan 18, 2025
7d2aae1
Update to vulkan 1.4
tdecroyere Jan 18, 2025
c8a3956
Fix shader compiler
tdecroyere Jan 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
Language: Cpp
UseTab: Never
IndentWidth: 4
ColumnLimit: 200
PointerAlignment: Left
BreakBeforeBraces: Allman
Cpp11BracedListStyle: false
InsertBraces: true

IndentCaseLabels: true
AlignAfterOpenBracket: DontAlign
AlignArrayOfStructures: None
AlignEscapedNewlines: DontAlign
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
PenaltyBreakAssignment: 15
PenaltyBreakBeforeFirstCallParameter: 15
PenaltyBreakOpenParenthesis: 15
BinPackArguments: false
BinPackParameters: false
6 changes: 0 additions & 6 deletions .github/workflows/build-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,6 @@ jobs:
with:
platform: ${{ matrix.platform }}
architecture: ${{ matrix.architecture }}

# TODO: Do a build bindings sub workflow
#build_dotnet:
# uses: ./.github/workflows/build-dotnet.yml
#name: 'build-dotnet'
#secrets: inherit

run_tests:
strategy:
Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
jobs:
build:
runs-on: ${{
(inputs.platform == 'osx' && 'macos-14') ||
(inputs.platform == 'osx' && 'macos-latest') ||
(inputs.platform == 'linux' && 'ubuntu-latest') ||
(inputs.platform == 'win' && 'windows-latest')
}}
Expand All @@ -27,14 +27,11 @@ jobs:
with:
arch: ${{ inputs.architecture }}

# TODO: For the moment Github actions doesn't have the latest version of ubuntu
# we will re enable the linux build after
# TODO: libwayland-dev wayland-protocols libdecor-devel
- name: Setup Dependencies (Linux)
if: inputs.platform == 'linux'
run: |
sudo apt-get update
sudo apt-get install -y -V libgtk-4-dev
sudo apt-get install libwayland-dev wayland-protocols libudev-dev libdecor-0-dev

- name: Setup Ninja
uses: seanmiddleditch/gha-setup-ninja@master
Expand Down
15 changes: 8 additions & 7 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,12 @@ jobs:
with:
name: tests.${{ inputs.platform }}-${{ inputs.architecture }}
path: ./

- name: Setup Dependencies (Linux)
if: inputs.platform == 'linux'
run: sudo apt-get update && sudo apt-get install -y libgtk-4-dev
run: |
sudo apt-get update
sudo apt-get install libwayland-dev wayland-protocols libudev-dev libdecor-0-dev

- name: Extract Tests Archive (Windows)
if: inputs.platform == 'win'
Expand Down Expand Up @@ -59,8 +61,7 @@ jobs:
if: inputs.platform == 'osx'
run: ./tests/ToolsTests.app/Contents/MacOS/ToolsTests

#- name: Run Graphics Tests
#if: inputs.platform == 'win'
#run: |
#$ErrorView = 'NormalView'
# ./Tests/GraphicsTests
#- name: Run Graphics Tests (MacOS)
#if: inputs.platform == 'osx'
#run: ./tests/GraphicsTests.app/Contents/MacOS/GraphicsTests

11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,16 @@
*.userosscache
*.sln.docstates
*.resolved
*.obj
*.mesh
*.ini
*.gltf
*.bin
*.tga
*.png
*.jpg
*.dds
*.mtl

xcuserdata/
packages/
Expand All @@ -32,3 +42,4 @@ bld/
external/shader-compilers/
.DS_Store
artifacts/
*.db
21 changes: 21 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,24 @@
[submodule "external/metal-cpp"]
path = external/metal-cpp
url = https://github.com/bkaradzic/metal-cpp.git
[submodule "external/meshoptimizer"]
path = external/meshoptimizer
url = https://github.com/zeux/meshoptimizer.git
[submodule "external/cimgui"]
path = external/cimgui
url = https://github.com/cimgui/cimgui.git
[submodule "external/fast_obj"]
path = external/fast_obj
url = https://github.com/thisistherk/fast_obj.git
[submodule "external/cgltf"]
path = external/cgltf
url = https://github.com/jkuhlmann/cgltf.git
[submodule "external/stb"]
path = external/stb
url = https://github.com/nothings/stb.git
[submodule "external/bc7enc_rdo"]
path = external/bc7enc_rdo
url = https://github.com/richgel999/bc7enc_rdo.git
[submodule "external/MikkTSpace"]
path = external/MikkTSpace
url = https://github.com/mmikk/MikkTSpace.git
9 changes: 5 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ if(WIN32)
elseif(LINUX)
set(CMAKE_CXX_COMPILER "clang++")
set(CMAKE_C_COMPILER "clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lm")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
else()
if(BUILD_FOR_IOS)
set(CMAKE_SYSTEM_NAME iOS)
Expand Down Expand Up @@ -49,13 +50,13 @@ add_compile_options($<$<COMPILE_LANGUAGE:C>:-Wno-unused-parameter>)
add_compile_options($<$<COMPILE_LANGUAGE:C>:-Wno-missing-field-initializers>)

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fansi-escape-codes -fcolor-diagnostics -D_CRT_SECURE_NO_WARNINGS")
set(CMAKE_CXX_STANDARD "23")
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcolor-diagnostics")
set(CMAKE_C_STANDARD "99")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fansi-escape-codes -fcolor-diagnostics -D_CRT_SECURE_NO_WARNINGS")
set(CMAKE_C_STANDARD "23")

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023-2024 Double Buffer SRL
Copyright (c) 2023-2025 Double Buffer SRL

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
31 changes: 0 additions & 31 deletions bindings/dotnet/Directory.Build.props

This file was deleted.

10 changes: 0 additions & 10 deletions bindings/dotnet/Directory.Packages.props

This file was deleted.

84 changes: 0 additions & 84 deletions bindings/dotnet/Elemental.sln

This file was deleted.

16 changes: 0 additions & 16 deletions bindings/dotnet/publish/Elemental.Tools/Elemental.Tools.nuspec

This file was deleted.

16 changes: 0 additions & 16 deletions bindings/dotnet/publish/Elemental/Elemental.nuspec

This file was deleted.

15 changes: 0 additions & 15 deletions bindings/dotnet/samples/01-HelloWorld/HelloWorld.csproj

This file was deleted.

20 changes: 0 additions & 20 deletions bindings/dotnet/samples/01-HelloWorld/Program.cs

This file was deleted.

16 changes: 0 additions & 16 deletions bindings/dotnet/samples/02-HelloWindow/HelloWindow.csproj

This file was deleted.

Loading
Loading