Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
d4c0187
start trying to add and build wgpu-native
toloudis Apr 13, 2022
094e28c
fix build for wgpu_native
toloudis Apr 13, 2022
5986365
build both dbg and release
toloudis Apr 13, 2022
e70ddf9
try fix lib name
toloudis Apr 13, 2022
12d8046
fussing with spacing and then try to get an include dir for wgpu header
toloudis Apr 13, 2022
d92bc9c
make new renderlib_wgpu
toloudis Jun 10, 2022
a69c9b6
try to fix build
toloudis Jun 11, 2022
70bfaf4
add some vulkan deps for linux/wgpu-native
toloudis Jun 11, 2022
268281c
add renderlib_wgpu as link dependency
toloudis Jun 13, 2022
030767c
logging for build debugging
toloudis Jun 13, 2022
86ca031
remove find_library as it is not compatible with externalproject
toloudis Jun 13, 2022
793b1f4
broken wip, won't build yet
toloudis Jun 13, 2022
ad658d4
now compiles on windows but does not yet link
toloudis Jun 13, 2022
4742343
builds and links on windows
toloudis Jun 13, 2022
b05f41a
linux compile fix
toloudis Jun 14, 2022
3460c88
fix scope issues
toloudis Jun 14, 2022
9e31061
add lib prefix
toloudis Jun 14, 2022
43417e5
precision-losing cast from 64bit ptr to uint32_t
toloudis Jun 14, 2022
7284086
add x11
toloudis Jun 14, 2022
9be01f1
add linkage to metal
toloudis Jun 14, 2022
ab71e05
fix lib specification
toloudis Jun 14, 2022
d350efc
add extern c to objective-c++ func
toloudis Jun 14, 2022
315158d
fix dumb mistake
toloudis Jun 14, 2022
2531820
wip toward a qt wgpu window
toloudis Jul 12, 2022
6b350f4
successfully use wgpu to clear the window to a color
toloudis Jul 13, 2022
5acda86
c++ 20!!!
toloudis Jul 14, 2022
03337c1
something about these temporaries was crashing on windows build
toloudis Jul 14, 2022
293a947
don't build the render pipeline until we have actual shaders ready
toloudis Jul 14, 2022
f2e1581
fix null pointer error and start debugging on windows
toloudis Jul 15, 2022
dc98e81
remove label field
toloudis Oct 25, 2022
d858039
Merge branch 'main' into feature/wgpu-native
toloudis May 1, 2023
078734c
update to proper git branch for wgpu_native
toloudis May 1, 2023
61317a4
getting it closer to compiling
toloudis May 1, 2023
b55b5f4
appease the compiler for now
toloudis May 1, 2023
8c9e2ca
finally compiled on macos
toloudis May 1, 2023
060b6c9
Merge branch 'main' into feature/wgpu-native
May 28, 2023
6d2db2b
trying to improve wgpu screen clearing on windows
toloudis Aug 23, 2022
0942675
fix qt signal
toloudis May 30, 2023
e952843
fix link
toloudis May 30, 2023
0df198f
create wgpu instance
toloudis May 30, 2023
998d3fa
some cleanup of the instance
toloudis May 30, 2023
06e5ba1
initialized without crashing
toloudis May 30, 2023
bb40815
add some error messages
toloudis May 30, 2023
b7d2cab
null check message
toloudis May 30, 2023
b782b65
trying to get green window to show up
toloudis May 30, 2023
b2712ea
try to drop swap chain
toloudis May 30, 2023
c92036a
trying to remove flicker
toloudis Jun 2, 2023
174733f
trying a Qt child widget to resolve flickering/presentation issues
toloudis Jun 5, 2023
b69ceaf
add ntdll linkage for windows
toloudis Jun 5, 2023
2e1f505
log surface runtime type on linux
Jun 3, 2023
e64c300
try to detect better on linux
Jun 6, 2023
53f9d6d
wip start making the main class be the child widget since it already …
toloudis Jun 7, 2023
6b8fb91
Merge branch 'feature/wgpu-native' of https://github.com/allen-cell-a…
toloudis Jun 7, 2023
991caee
Merge branch 'main' into feature/wgpu-native
Jun 25, 2023
2b77095
needed one more lib on linux
Jun 25, 2023
2400a55
broken wip on wgpuview3d
Jun 25, 2023
5ff7111
add fetchcontent
Jul 1, 2023
a180510
drop is release
Jul 24, 2023
09e690b
Merge commit 'fdf1b71cfcd3556ae5cf9262ea1f036c2d9bd5e1' into feature/…
toloudis Oct 8, 2023
4a26c84
wgpu version number in comment
toloudis Oct 8, 2023
b26d71a
wip - start to catch up with changes to glview3d and to wgpu spec
toloudis Oct 8, 2023
39b457f
more wip updates
toloudis Oct 9, 2023
7e740f8
Merge branch 'feature/local-and-world-space-modes' into feature/wgpu-…
toloudis Oct 10, 2023
80e1b00
wip - get it compiling again
Oct 12, 2023
518cd1d
work on cross platform wgpu (macos in particular)
toloudis Oct 13, 2023
fa51119
bug fix
toloudis Oct 14, 2023
657afc8
fixes on windows
toloudis Oct 14, 2023
edadb59
fix linux compile
Oct 14, 2023
9ba231b
link with x11
Oct 14, 2023
f10356a
clean some warnings
toloudis Oct 16, 2023
d945ade
make Qt child window to get correct redraw behavior
toloudis Oct 16, 2023
8c75b16
demonstrate color map
toloudis Sep 2, 2023
453295d
start to add a simple color gradient dropdown widget
toloudis Sep 2, 2023
c999d96
fixups
toloudis Sep 2, 2023
87d682b
add a ui control
Sep 3, 2023
1988bf2
connect gui to rendering!
Sep 3, 2023
2c81b36
start adding good gradients
Sep 3, 2023
45d1417
init builtin colormaps correctly
toloudis Sep 3, 2023
a286f00
fussing with combobox to show gradient
toloudis Sep 4, 2023
143e17c
really bad attempt to draw the gradient in the combo box
toloudis Sep 8, 2023
0ce9f2e
draw current gradient to the combobox
toloudis Sep 8, 2023
b7a0eb1
use vector instead of map
toloudis Sep 8, 2023
1450514
default white colormap
toloudis Sep 8, 2023
495b467
clean up camera trackball rotation code
toloudis Oct 9, 2023
741903f
Bump pillow from 9.3.0 to 10.0.1 in /agave_pyclient
dependabot[bot] Oct 4, 2023
7bb328c
Bump @babel/traverse from 7.22.5 to 7.23.2 in /webclient
dependabot[bot] Oct 19, 2023
b8dc20f
re-group the camera controls and get rid of extra code. make the layo…
toloudis Oct 11, 2023
d541df2
fix loading/saving
toloudis Oct 11, 2023
585629e
allow dpr to factor into sizing of manipulators
toloudis Oct 20, 2023
e192c6a
fussing with texture indices
toloudis Oct 27, 2023
7313a21
S for coordinate space, L for light gizmo
toloudis Nov 1, 2023
40c42e6
control area light gizmo visibility
toloudis Nov 1, 2023
58ebf98
trying a different color mapping system
toloudis Nov 1, 2023
cee8cd8
update OrthoScale when manipulating camera
toloudis Nov 1, 2023
3ec7664
use opacity as part of the multichannel intensity max check, and onward
toloudis Nov 2, 2023
a8ecc2d
fix missing uint16_t
toloudis Nov 2, 2023
b3b1737
try a weighted random choice to scatter from a multichannel point
toloudis Nov 18, 2023
9f716ff
add a "keep settings" button for load dialog
toloudis Dec 1, 2023
fcc9524
init camera on first volume even if keepsettings is checked
toloudis Dec 1, 2023
60c091f
remove unused arg
toloudis Dec 1, 2023
255b58c
turn off default light source tool, and switch sampling back to absol…
toloudis Dec 1, 2023
3c7b352
fix channel enable bug
toloudis Dec 2, 2023
6db8272
macos + opengl can't index dynamically into sampler array
toloudis Dec 4, 2023
85954c7
fix compile
toloudis Dec 11, 2023
6087daf
start to move more wgpu code down into renderlib
toloudis Dec 11, 2023
20c2f65
hooking up a renderer and trying to get child window to play nice
toloudis Dec 12, 2023
239c6f5
release some things
toloudis Dec 12, 2023
a76e6f9
fix surface config
toloudis Dec 12, 2023
1087eb6
missed an enum
toloudis Dec 12, 2023
1cf18fb
fix macos ninja build
toloudis Dec 14, 2023
9e91458
fix flicker and hopefully qpaintengine warnings
toloudis Dec 18, 2023
2c99bc2
start shifting wgpu code down into lib
toloudis Dec 18, 2023
1245959
abstract framebuffer object
toloudis Dec 20, 2023
43b9c80
Merge branch 'feature/scalebar' into feature/wgpu-native
toloudis Jan 14, 2024
550dec8
post merge fixup
toloudis Jan 15, 2024
8809d72
Merge branch 'feature/light-manip-ui' into feature/wgpu-native
toloudis Jan 20, 2024
db62fcf
fixups post-merge
toloudis Jan 20, 2024
e1d66e3
Merge branch 'feature/1.6-docs' into feature/wgpu-native
toloudis Feb 12, 2024
983b9b9
sync with latest version of agave and wgpu
toloudis Feb 12, 2024
fdb62e1
Merge branch 'main' into feature/wgpu-native
toloudis Apr 27, 2024
1190fac
put glsl into separate shader source files
toloudis Apr 28, 2024
33d6409
add shaders to wgpu
toloudis Apr 28, 2024
0bfac65
rename to wgsl
toloudis Apr 28, 2024
2b41250
WIP converting shaders
toloudis Apr 28, 2024
5fb6106
port basicVol
toloudis Apr 28, 2024
3bca563
more porting shaders
toloudis Apr 28, 2024
8e49f65
fix
toloudis Apr 28, 2024
40179b7
port gui shader
toloudis Apr 28, 2024
f4c71a9
port image shader
toloudis Apr 28, 2024
060d203
port tonemap
toloudis Apr 28, 2024
b0049e2
try newer tensorstore
toloudis Apr 29, 2024
608c580
try to fix build
toloudis Apr 30, 2024
685140d
start main volume shader port
toloudis May 1, 2024
c90bfd2
Merge branch 'feature/wgpu-native' of https://github.com/allen-cell-a…
toloudis May 1, 2024
3f9a4da
try ninja to fix tensorstore protobuf build
toloudis May 1, 2024
b1a4471
add ninja
toloudis May 1, 2024
c7d0b81
Merge branch 'main' into feature/wgpu-native
toloudis Jun 24, 2024
4f57968
post merge fix
toloudis Jun 25, 2024
6b5fb83
Merge branch 'main' into feature/wgpu-native
toloudis Jul 13, 2024
ab89026
Give a try at using Visual Studio's builtin cmake support
toloudis Jul 13, 2024
1d9da15
add out dir to gitignore
toloudis Jul 13, 2024
5812ac2
fix mistake
toloudis Jul 27, 2024
9d2abee
Merge branch 'main' into feature/wgpu-native
toloudis Sep 1, 2024
66503c0
fixups
toloudis Sep 1, 2024
779e7be
many fixups
toloudis Sep 1, 2024
838fd54
refactoring, still need to not copy/destruct the windowcontext
toloudis Sep 3, 2024
15c2726
make window context a ptr
toloudis Sep 3, 2024
ab92190
Merge branch 'main' into feature/wgpu-native
toloudis Sep 4, 2024
3a45e3d
assign wgpu renderers
toloudis Sep 4, 2024
8e2747d
some init for wgpu renderer
toloudis Sep 4, 2024
179c51c
Merge branch 'main' into feature/wgpu-native
toloudis Sep 13, 2024
c3a9d73
update wgpu version
toloudis Sep 15, 2024
5c327ef
Merge commit '8cf2d039a40e4bc7e7e5e51c053393627a33f88a' into feature/…
toloudis Sep 24, 2024
2e1c603
Merge branch 'main' into feature/wgpu-native
toloudis Nov 25, 2024
15ba8cb
merge fixup
toloudis Nov 26, 2024
3f78e0b
sync wgpuview
toloudis Nov 26, 2024
89bf06a
fix tensorstore array
toloudis Dec 30, 2024
120f01f
start to refactor shaders into shader array
toloudis Dec 30, 2024
3f1bb76
use better name
toloudis Dec 30, 2024
2b43edd
wip
toloudis Dec 30, 2024
105aa70
wip
toloudis Dec 30, 2024
4681df4
reworking the shader generation
toloudis Dec 30, 2024
a63fb06
fix var names
toloudis Dec 30, 2024
eb35852
first attempts to actually run with the new shaders
toloudis Dec 31, 2024
e27f5d6
try gl context sharing
toloudis Dec 31, 2024
0e2164b
refactor all shaders
toloudis Dec 31, 2024
20904cd
do better lazy init on shaders for active contexts
toloudis Jan 1, 2025
1e770cf
setup default opengl surface format before creating app
toloudis Jan 1, 2025
7bf0a08
Merge branch 'feature/build-shaders' into feature/wgpu-native
toloudis Jan 1, 2025
858c97c
comment/todo
toloudis Jan 3, 2025
180d31f
enumerate adapters and print out
toloudis Jan 3, 2025
6f278ff
shader version 460
toloudis Jan 15, 2025
6512d02
Merge branch 'main' into feature/wgpu-native
toloudis Mar 4, 2025
360ff88
post-merge fixups part 1
toloudis Mar 4, 2025
6e71c2d
post merge fixup 2
toloudis Mar 4, 2025
3448d44
Merge branch 'main' into feature/wgpu-native
toloudis Mar 8, 2025
a6dd9b2
Merge branch 'main' into feature/wgpu-native
toloudis Sep 3, 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
2 changes: 1 addition & 1 deletion .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ jobs:
CC: gcc
CXX: g++
run: |
sudo apt-get install ninja-build libspdlog-dev libglm-dev libgl1-mesa-dev libegl1-mesa-dev libtiff-dev libzstd-dev nasm
sudo apt-get install ninja-build libspdlog-dev libglm-dev libgl1-mesa-dev libegl1-mesa-dev mesa-vulkan-drivers libtiff-dev libzstd-dev nasm
- name: linux build and test
if: matrix.os == 'ubuntu-latest'
env:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ webclient/node_modules/
webclient/es/

build/
out/
renderlib/version.h
docs/_build/
GeneratedFiles/
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
# THE COMMON CORE LIBRARIES
# #####################
add_subdirectory(renderlib)
add_subdirectory(renderlib_wgpu)

set(INSTALLDIR "${CMAKE_PROJECT_NAME}-install")

Expand Down
16 changes: 16 additions & 0 deletions CMakeSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"configurations": [
{
"name": "x64-Debug",
"generator": "Ninja",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x64_x64" ],
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "-DVCPKG_TARGET_TRIPLET=x64-windows",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"cmakeToolchain": "C:\\Users\\dmt\\source\\repos\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake"
}
]
}
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ Make sure you are in an environment where vsvarsall has been run, e.g. a "VS2022

A convenient way to install Perl, NASM, and GNU Patch is with chocolatey.

wgpu-native requires:
Rust
LLVM and clang

```
choco install strawberryperl nasm patch
```
Expand Down Expand Up @@ -88,6 +92,8 @@ sudo make install

### For LINUX:

Make sure you have Rust 1.59 or greater installed for the wgpu-native dependency.

Install Qt 6.8.3 in your directory of choice and tell the build where to find it.
In your favorite Python virtual environment:

Expand All @@ -100,10 +106,13 @@ aqt install-qt --outputdir ~/Qt linux desktop 6.8.3 -m qtwebsockets qtimageforma

export Qt6_DIR=~/Qt/6.8.3/gcc_64

sudo apt install libclang-dev # for rust / wgpu-native
sudo apt install libtiff-dev
sudo apt install libglm-dev
sudo apt install libgl1-mesa-dev
sudo apt install libegl1-mesa-dev
sudo apt install libxkbcommon-dev
sudo apt install mesa-vulkan-drivers
sudo apt install libspdlog-dev
sudo apt install nasm
sudo apt install libxcb-xkb-dev
Expand Down
3 changes: 3 additions & 0 deletions agave_app/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ target_sources(agaveapp PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/TimelineDockWidget.h"
"${CMAKE_CURRENT_SOURCE_DIR}/ViewerState.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ViewerState.h"
"${CMAKE_CURRENT_SOURCE_DIR}/wgpuView3D.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/wgpuView3D.h"
"${CMAKE_CURRENT_SOURCE_DIR}/ViewToolbar.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/ViewToolbar.h"
)
Expand All @@ -98,6 +100,7 @@ endif(MSVC)

target_link_libraries(agaveapp PRIVATE
renderlib
renderlib_wgpu
Qt::Widgets Qt::Core Qt::Gui Qt::Network Qt::OpenGL Qt::OpenGLWidgets Qt::WebSockets Qt::Xml Qt::Svg
)

Expand Down
4 changes: 3 additions & 1 deletion agave_app/StatisticsWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ QStatisticsWidget::set(std::shared_ptr<CStatus> status)
mStatusObject->removeObserver(&mStatusObserver);
}
mStatusObject = status;
mStatusObject->addObserver(&mStatusObserver);
if (mStatusObject) {
mStatusObject->addObserver(&mStatusObserver);
}
}

QSize
Expand Down
12 changes: 7 additions & 5 deletions agave_app/agaveGui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ agaveGui::agaveGui(QWidget* parent)
connect(m_tabs, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int)));

// add the single gl view as a tab
m_glView = new GLView3D(&m_qcamera, &m_qrendersettings, &m_renderSettings, this);
m_glView = new WgpuCanvas(&m_qcamera, &m_qrendersettings, &m_renderSettings, this);
QObject::connect(m_glView, SIGNAL(ChangedRenderer()), this, SLOT(OnUpdateRenderer()));

m_glView->setObjectName("glcontainer");
Expand Down Expand Up @@ -725,7 +725,9 @@ agaveGui::onImageLoaded(std::shared_ptr<ImageXYZC> image,
std::shared_ptr<CStatus> s = m_glView->getStatus();
// set up the m_statisticsDockWidget as a CStatus IStatusObserver
m_statisticsDockWidget->setStatus(s);
s->onNewImage(filename, &m_appScene);
if (s) {
s->onNewImage(filename, &m_appScene);
}

m_currentFilePath = loadSpec.filepath;
agaveGui::prependToRecentFiles(QString::fromStdString(loadSpec.filepath));
Expand Down Expand Up @@ -853,7 +855,7 @@ agaveGui::openMesh(const QString& file)
}

void
agaveGui::viewFocusChanged(GLView3D* newGlView)
agaveGui::viewFocusChanged(WgpuCanvas* newGlView)
{
if (m_glView == newGlView)
return;
Expand All @@ -870,14 +872,14 @@ agaveGui::viewFocusChanged(GLView3D* newGlView)
void
agaveGui::tabChanged(int index)
{
GLView3D* current = 0;
WgpuCanvas* current = 0;
if (index >= 0) {
QWidget* w = m_tabs->currentWidget();
if (w) {
QLayout* layout = w->layout();
// ASSUMES THAT THE GLVIEW IS THE SECOND WIDGET IN THE LAYOUT
// TODO could use a QWidget wrapper class to get the glview out
current = static_cast<GLView3D*>(layout->itemAt(1)->widget());
current = static_cast<WgpuCanvas*>(layout->itemAt(1)->widget());
}
}
viewFocusChanged(current);
Expand Down
6 changes: 3 additions & 3 deletions agave_app/agaveGui.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
#include "ui_agaveGui.h"

#include "Camera.h"
#include "GLView3D.h"
#include "QRenderSettings.h"
#include "ViewerState.h"
#include "renderDialog.h"
#include "wgpuView3D.h"

#include "renderlib/AppScene.h"
#include "renderlib/RenderSettings.h"
Expand Down Expand Up @@ -66,7 +66,7 @@ private slots:
void view_frame();
void view_toggleProjection();
void showAxisHelper();
void viewFocusChanged(GLView3D* glView);
void viewFocusChanged(WgpuCanvas* glView);
void tabChanged(int index);
void openMeshDialog();
void openMesh(const QString& file);
Expand Down Expand Up @@ -150,7 +150,7 @@ private slots:
QStatisticsDockWidget* m_statisticsDockWidget;

QTabWidget* m_tabs;
GLView3D* m_glView;
WgpuCanvas* m_glView;
ViewToolbar* m_viewToolbar;
QWidget* m_viewWithToolbar;

Expand Down
1 change: 0 additions & 1 deletion agave_app/loadDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ private slots:
// select any set of channels
QListWidget* mChannels;
Section* mChannelsSection;
QTreeWidget* mMetadataTree;
QLabel* mVolumeLabel;
QLabel* mMemoryEstimateLabel;
// select region of interest in zyx
Expand Down
17 changes: 15 additions & 2 deletions agave_app/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "renderlib/io/FileReader.h"
#include "renderlib/renderlib.h"
#include "renderlib/version.h"
#include "renderlib_wgpu/renderlib_wgpu.h"
#include "streamserver.h"

#include <QApplication>
Expand Down Expand Up @@ -145,16 +146,24 @@ main(int argc, char* argv[])
Logging::Init();

QApplication::setAttribute(Qt::AA_UseDesktopOpenGL);
QApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
// TODO remove this for qt 6.6 and up?
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication::setStyle("fusion");
// note that this is called before renderlib::initialize
QSurfaceFormat format = renderlib::getQSurfaceFormat();
QSurfaceFormat::setDefaultFormat(format);

AgaveApplication a(argc, argv);
a.setOrganizationName("Allen Institute for Cell Science");
a.setOrganizationDomain("allencell.org");
a.setApplicationName("AGAVE");
a.setApplicationVersion(AICS_VERSION_STRING);

LOG_INFO << a.organizationName().toStdString() << " " << a.applicationName().toStdString() << " "
<< a.applicationVersion().toStdString();
std::string orgname = a.organizationName().toStdString();
std::string appname = a.applicationName().toStdString();
std::string appversion = a.applicationVersion().toStdString();
LOG_INFO << orgname << " " << appname << " " << appversion;

QCommandLineParser parser;
parser.setApplicationDescription("Advanced GPU Accelerated Volume Explorer");
Expand Down Expand Up @@ -211,6 +220,10 @@ main(int argc, char* argv[])
renderlib::cleanup();
return 0;
}
if (!renderlib_wgpu::initialize(isServer, listDevices, selectedGpu)) {
renderlib_wgpu::cleanup();
return 0;
}

int result = 0;

Expand Down
Loading
Loading