vtk: update to 9.3.1.

This commit is contained in:
Daniel Martinez 2024-09-30 18:42:57 -04:00 committed by Andrew Benson
parent 6382332529
commit 85e84d5b0b
6 changed files with 677 additions and 129 deletions

View File

@ -3343,116 +3343,116 @@ libgnuradio-pdu.so.3.10.10 gnuradio-3.10.10.0_1
libgnuradio-osmosdr.so.0.2.0 gnuradio-osmosdr-0.2.0_1
libflann_cpp.so.1.9 flann-1.9.1_1
libflann.so.1.9 flann-1.9.1_1
libvtkCommonCore-9.2.so.1 vtk-9.2.2_1
libvtksys-9.2.so.1 vtk-9.2.2_1
libvtkCommonMisc-9.2.so.1 vtk-9.2.2_1
libvtkRenderingContext2D-9.2.so.1 vtk-9.2.2_1
libvtkCommonTransforms-9.2.so.1 vtk-9.2.2_1
libvtkCommonMath-9.2.so.1 vtk-9.2.2_1
libvtkRenderingLOD-9.2.so.1 vtk-9.2.2_1
libvtkViewsInfovis-9.2.so.1 vtk-9.2.2_1
libvtkIOIOSS-9.2.so.1 vtk-9.2.2_1
libvtkRenderingLabel-9.2.so.1 vtk-9.2.2_1
libvtkFiltersPoints-9.2.so.1 vtk-9.2.2_1
libvtkCommonExecutionModel-9.2.so.1 vtk-9.2.2_1
libvtkRenderingHyperTreeGrid-9.2.so.1 vtk-9.2.2_1
libvtkFiltersGeometry-9.2.so.1 vtk-9.2.2_1
libvtkFiltersGeneral-9.2.so.1 vtk-9.2.2_1
libvtkCommonDataModel-9.2.so.1 vtk-9.2.2_1
libvtkFiltersTopology-9.2.so.1 vtk-9.2.2_1
libvtkFiltersSources-9.2.so.1 vtk-9.2.2_1
libvtkRenderingVolumeOpenGL2-9.2.so.1 vtk-9.2.2_1
libvtkRenderingCore-9.2.so.1 vtk-9.2.2_1
libvtkIOOggTheora-9.2.so.1 vtk-9.2.2_1
libvtkIOExportGL2PS-9.2.so.1 vtk-9.2.2_1
libvtkIOAMR-9.2.so.1 vtk-9.2.2_1
libvtkIOCesium3DTiles-9.2.so.1 vtk-9.2.2_1
libvtkIOSegY-9.2.so.1 vtk-9.2.2_1
libvtkRenderingVtkJS-9.2.so.1 vtk-9.2.2_1
libvtkFiltersTexture-9.2.so.1 vtk-9.2.2_1
libvtkIOVideo-9.2.so.1 vtk-9.2.2_1
libvtkImagingSources-9.2.so.1 vtk-9.2.2_1
libvtkImagingStencil-9.2.so.1 vtk-9.2.2_1
libvtkIOCGNSReader-9.2.so.1 vtk-9.2.2_1
libvtkCommonComputationalGeometry-9.2.so.1 vtk-9.2.2_1
libvtkIOVeraOut-9.2.so.1 vtk-9.2.2_1
libvtkFiltersHybrid-9.2.so.1 vtk-9.2.2_1
libvtkInteractionImage-9.2.so.1 vtk-9.2.2_1
libvtkChartsCore-9.2.so.1 vtk-9.2.2_1
libvtkImagingStatistics-9.2.so.1 vtk-9.2.2_1
libvtkImagingHybrid-9.2.so.1 vtk-9.2.2_1
libvtkGeovisCore-9.2.so.1 vtk-9.2.2_1
libvtkInteractionWidgets-9.2.so.1 vtk-9.2.2_1
libvtkFiltersImaging-9.2.so.1 vtk-9.2.2_1
libvtkFiltersVerdict-9.2.so.1 vtk-9.2.2_1
libvtkFiltersSMP-9.2.so.1 vtk-9.2.2_1
libvtkRenderingUI-9.2.so.1 vtk-9.2.2_1
libvtkIOHDF-9.2.so.1 vtk-9.2.2_1
libvtkCommonSystem-9.2.so.1 vtk-9.2.2_1
libvtkImagingColor-9.2.so.1 vtk-9.2.2_1
libvtkRenderingSceneGraph-9.2.so.1 vtk-9.2.2_1
libvtkParallelCore-9.2.so.1 vtk-9.2.2_1
libvtkIOInfovis-9.2.so.1 vtk-9.2.2_1
libvtkRenderingOpenGL2-9.2.so.1 vtk-9.2.2_1
libvtkImagingFourier-9.2.so.1 vtk-9.2.2_1
libvtkCommonColor-9.2.so.1 vtk-9.2.2_1
libvtkRenderingAnnotation-9.2.so.1 vtk-9.2.2_1
libvtkIOSQL-9.2.so.1 vtk-9.2.2_1
libvtkIOImage-9.2.so.1 vtk-9.2.2_1
libvtkFiltersCore-9.2.so.1 vtk-9.2.2_1
libvtkInfovisCore-9.2.so.1 vtk-9.2.2_1
libvtkFiltersExtraction-9.2.so.1 vtk-9.2.2_1
libvtkIOGeometry-9.2.so.1 vtk-9.2.2_1
libvtkFiltersFlowPaths-9.2.so.1 vtk-9.2.2_1
libvtkIOMovie-9.2.so.1 vtk-9.2.2_1
libvtkRenderingVolume-9.2.so.1 vtk-9.2.2_1
libvtkIOEnSight-9.2.so.1 vtk-9.2.2_1
libvtkDomainsChemistryOpenGL2-9.2.so.1 vtk-9.2.2_1
libvtkFiltersStatistics-9.2.so.1 vtk-9.2.2_1
libvtkFiltersSelection-9.2.so.1 vtk-9.2.2_1
libvtkFiltersModeling-9.2.so.1 vtk-9.2.2_1
libvtkViewsCore-9.2.so.1 vtk-9.2.2_1
libvtkIOMotionFX-9.2.so.1 vtk-9.2.2_1
libvtkIOLSDyna-9.2.so.1 vtk-9.2.2_1
libvtkIOParallel-9.2.so.1 vtk-9.2.2_1
libvtkRenderingContextOpenGL2-9.2.so.1 vtk-9.2.2_1
libvtkRenderingImage-9.2.so.1 vtk-9.2.2_1
libvtkIOXMLParser-9.2.so.1 vtk-9.2.2_1
libvtkImagingMorphological-9.2.so.1 vtk-9.2.2_1
libvtkFiltersParallel-9.2.so.1 vtk-9.2.2_1
libvtkViewsContext2D-9.2.so.1 vtk-9.2.2_1
libvtkIOImport-9.2.so.1 vtk-9.2.2_1
libvtkRenderingLICOpenGL2-9.2.so.1 vtk-9.2.2_1
libvtkIOAsynchronous-9.2.so.1 vtk-9.2.2_1
libvtkIOTecplotTable-9.2.so.1 vtk-9.2.2_1
libvtkIOCityGML-9.2.so.1 vtk-9.2.2_1
libvtkImagingMath-9.2.so.1 vtk-9.2.2_1
libvtkIOParallelXML-9.2.so.1 vtk-9.2.2_1
libvtkRenderingGL2PSOpenGL2-9.2.so.1 vtk-9.2.2_1
libvtkFiltersGeneric-9.2.so.1 vtk-9.2.2_1
libvtkIONetCDF-9.2.so.1 vtk-9.2.2_1
libvtkImagingCore-9.2.so.1 vtk-9.2.2_1
libvtkInfovisLayout-9.2.so.1 vtk-9.2.2_1
libvtkFiltersHyperTree-9.2.so.1 vtk-9.2.2_1
libvtkIOExportPDF-9.2.so.1 vtk-9.2.2_1
libvtkImagingGeneral-9.2.so.1 vtk-9.2.2_1
libvtkIOXML-9.2.so.1 vtk-9.2.2_1
libvtkIOChemistry-9.2.so.1 vtk-9.2.2_1
libvtkInteractionStyle-9.2.so.1 vtk-9.2.2_1
libvtkFiltersAMR-9.2.so.1 vtk-9.2.2_1
libvtkIOMINC-9.2.so.1 vtk-9.2.2_1
libvtkTestingRendering-9.2.so.1 vtk-9.2.2_1
libvtkFiltersParallelImaging-9.2.so.1 vtk-9.2.2_1
libvtkDomainsChemistry-9.2.so.1 vtk-9.2.2_1
libvtkIOExport-9.2.so.1 vtk-9.2.2_1
libvtkIOCore-9.2.so.1 vtk-9.2.2_1
libvtkFiltersProgrammable-9.2.so.1 vtk-9.2.2_1
libvtkIOCONVERGECFD-9.2.so.1 vtk-9.2.2_1
libvtkIOLegacy-9.2.so.1 vtk-9.2.2_1
libvtkRenderingFreeType-9.2.so.1 vtk-9.2.2_1
libvtkIOPLY-9.2.so.1 vtk-9.2.2_1
libvtkIOExodus-9.2.so.1 vtk-9.2.2_1
libvtkkissfft-9.2.so.1 vtk-9.2.2_1
libvtkCommonCore-9.3.so.1 vtk-9.3.0_1
libvtksys-9.3.so.1 vtk-9.3.0_1
libvtkCommonMisc-9.3.so.1 vtk-9.3.0_1
libvtkRenderingContext2D-9.3.so.1 vtk-9.3.0_1
libvtkCommonTransforms-9.3.so.1 vtk-9.3.0_1
libvtkCommonMath-9.3.so.1 vtk-9.3.0_1
libvtkRenderingLOD-9.3.so.1 vtk-9.3.0_1
libvtkViewsInfovis-9.3.so.1 vtk-9.3.0_1
libvtkIOIOSS-9.3.so.1 vtk-9.3.0_1
libvtkRenderingLabel-9.3.so.1 vtk-9.3.0_1
libvtkFiltersPoints-9.3.so.1 vtk-9.3.0_1
libvtkCommonExecutionModel-9.3.so.1 vtk-9.3.0_1
libvtkRenderingHyperTreeGrid-9.3.so.1 vtk-9.3.0_1
libvtkFiltersGeometry-9.3.so.1 vtk-9.3.0_1
libvtkFiltersGeneral-9.3.so.1 vtk-9.3.0_1
libvtkCommonDataModel-9.3.so.1 vtk-9.3.0_1
libvtkFiltersTopology-9.3.so.1 vtk-9.3.0_1
libvtkFiltersSources-9.3.so.1 vtk-9.3.0_1
libvtkRenderingVolumeOpenGL2-9.3.so.1 vtk-9.3.0_1
libvtkRenderingCore-9.3.so.1 vtk-9.3.0_1
libvtkIOOggTheora-9.3.so.1 vtk-9.3.0_1
libvtkIOExportGL2PS-9.3.so.1 vtk-9.3.0_1
libvtkIOAMR-9.3.so.1 vtk-9.3.0_1
libvtkIOCesium3DTiles-9.3.so.1 vtk-9.3.0_1
libvtkIOSegY-9.3.so.1 vtk-9.3.0_1
libvtkRenderingVtkJS-9.3.so.1 vtk-9.3.0_1
libvtkFiltersTexture-9.3.so.1 vtk-9.3.0_1
libvtkIOVideo-9.3.so.1 vtk-9.3.0_1
libvtkImagingSources-9.3.so.1 vtk-9.3.0_1
libvtkImagingStencil-9.3.so.1 vtk-9.3.0_1
libvtkIOCGNSReader-9.3.so.1 vtk-9.3.0_1
libvtkCommonComputationalGeometry-9.3.so.1 vtk-9.3.0_1
libvtkIOVeraOut-9.3.so.1 vtk-9.3.0_1
libvtkFiltersHybrid-9.3.so.1 vtk-9.3.0_1
libvtkInteractionImage-9.3.so.1 vtk-9.3.0_1
libvtkChartsCore-9.3.so.1 vtk-9.3.0_1
libvtkImagingStatistics-9.3.so.1 vtk-9.3.0_1
libvtkImagingHybrid-9.3.so.1 vtk-9.3.0_1
libvtkGeovisCore-9.3.so.1 vtk-9.3.0_1
libvtkInteractionWidgets-9.3.so.1 vtk-9.3.0_1
libvtkFiltersImaging-9.3.so.1 vtk-9.3.0_1
libvtkFiltersVerdict-9.3.so.1 vtk-9.3.0_1
libvtkFiltersSMP-9.3.so.1 vtk-9.3.0_1
libvtkRenderingUI-9.3.so.1 vtk-9.3.0_1
libvtkIOHDF-9.3.so.1 vtk-9.3.0_1
libvtkCommonSystem-9.3.so.1 vtk-9.3.0_1
libvtkImagingColor-9.3.so.1 vtk-9.3.0_1
libvtkRenderingSceneGraph-9.3.so.1 vtk-9.3.0_1
libvtkParallelCore-9.3.so.1 vtk-9.3.0_1
libvtkIOInfovis-9.3.so.1 vtk-9.3.0_1
libvtkRenderingOpenGL2-9.3.so.1 vtk-9.3.0_1
libvtkImagingFourier-9.3.so.1 vtk-9.3.0_1
libvtkCommonColor-9.3.so.1 vtk-9.3.0_1
libvtkRenderingAnnotation-9.3.so.1 vtk-9.3.0_1
libvtkIOSQL-9.3.so.1 vtk-9.3.0_1
libvtkIOImage-9.3.so.1 vtk-9.3.0_1
libvtkFiltersCore-9.3.so.1 vtk-9.3.0_1
libvtkInfovisCore-9.3.so.1 vtk-9.3.0_1
libvtkFiltersExtraction-9.3.so.1 vtk-9.3.0_1
libvtkIOGeometry-9.3.so.1 vtk-9.3.0_1
libvtkFiltersFlowPaths-9.3.so.1 vtk-9.3.0_1
libvtkIOMovie-9.3.so.1 vtk-9.3.0_1
libvtkRenderingVolume-9.3.so.1 vtk-9.3.0_1
libvtkIOEnSight-9.3.so.1 vtk-9.3.0_1
libvtkDomainsChemistryOpenGL2-9.3.so.1 vtk-9.3.0_1
libvtkFiltersStatistics-9.3.so.1 vtk-9.3.0_1
libvtkFiltersSelection-9.3.so.1 vtk-9.3.0_1
libvtkFiltersModeling-9.3.so.1 vtk-9.3.0_1
libvtkViewsCore-9.3.so.1 vtk-9.3.0_1
libvtkIOMotionFX-9.3.so.1 vtk-9.3.0_1
libvtkIOLSDyna-9.3.so.1 vtk-9.3.0_1
libvtkIOParallel-9.3.so.1 vtk-9.3.0_1
libvtkRenderingContextOpenGL2-9.3.so.1 vtk-9.3.0_1
libvtkRenderingImage-9.3.so.1 vtk-9.3.0_1
libvtkIOXMLParser-9.3.so.1 vtk-9.3.0_1
libvtkImagingMorphological-9.3.so.1 vtk-9.3.0_1
libvtkFiltersParallel-9.3.so.1 vtk-9.3.0_1
libvtkViewsContext2D-9.3.so.1 vtk-9.3.0_1
libvtkIOImport-9.3.so.1 vtk-9.3.0_1
libvtkRenderingLICOpenGL2-9.3.so.1 vtk-9.3.0_1
libvtkIOAsynchronous-9.3.so.1 vtk-9.3.0_1
libvtkIOTecplotTable-9.3.so.1 vtk-9.3.0_1
libvtkIOCityGML-9.3.so.1 vtk-9.3.0_1
libvtkImagingMath-9.3.so.1 vtk-9.3.0_1
libvtkIOParallelXML-9.3.so.1 vtk-9.3.0_1
libvtkRenderingGL2PSOpenGL2-9.3.so.1 vtk-9.3.0_1
libvtkFiltersGeneric-9.3.so.1 vtk-9.3.0_1
libvtkIONetCDF-9.3.so.1 vtk-9.3.0_1
libvtkImagingCore-9.3.so.1 vtk-9.3.0_1
libvtkInfovisLayout-9.3.so.1 vtk-9.3.0_1
libvtkFiltersHyperTree-9.3.so.1 vtk-9.3.0_1
libvtkIOExportPDF-9.3.so.1 vtk-9.3.0_1
libvtkImagingGeneral-9.3.so.1 vtk-9.3.0_1
libvtkIOXML-9.3.so.1 vtk-9.3.0_1
libvtkIOChemistry-9.3.so.1 vtk-9.3.0_1
libvtkInteractionStyle-9.3.so.1 vtk-9.3.0_1
libvtkFiltersAMR-9.3.so.1 vtk-9.3.0_1
libvtkIOMINC-9.3.so.1 vtk-9.3.0_1
libvtkTestingRendering-9.3.so.1 vtk-9.3.0_1
libvtkFiltersParallelImaging-9.3.so.1 vtk-9.3.0_1
libvtkDomainsChemistry-9.3.so.1 vtk-9.3.0_1
libvtkIOExport-9.3.so.1 vtk-9.3.0_1
libvtkIOCore-9.3.so.1 vtk-9.3.0_1
libvtkFiltersProgrammable-9.3.so.1 vtk-9.3.0_1
libvtkIOCONVERGECFD-9.3.so.1 vtk-9.3.0_1
libvtkIOLegacy-9.3.so.1 vtk-9.3.0_1
libvtkRenderingFreeType-9.3.so.1 vtk-9.3.0_1
libvtkIOPLY-9.3.so.1 vtk-9.3.0_1
libvtkIOExodus-9.3.so.1 vtk-9.3.0_1
libvtkkissfft-9.3.so.1 vtk-9.3.0_1
libvolume_key.so.1 volume_key-0.3.9_1
librand48_r.so.0 rand48_r-0.1_1
libxxhash.so.0 libxxHash-0.6.5_2

View File

@ -0,0 +1,390 @@
From 748572894e96b1eab4089da912441ae1b588b2aa Mon Sep 17 00:00:00 2001
From: Jaswant Panchumarti <jaswant.panchumarti@kitware.com>
Date: Wed, 30 Aug 2023 15:24:16 -0400
Subject: [PATCH] emsdk 3.1.45: get code to compile
- closes vtk/vtk#19060.
- disable IOExportGL2PS for WebAssembly.
- handle stat64 vs stat for emscripten in LSDyna and Ensight readers.
---
.../docs/advanced/build_wasm_emscripten.md | 10 +++
.../release/dev/update-dawn-webgpu.md | 6 ++
IO/EnSight/vtkEnSight6BinaryReader.cxx | 8 ++
IO/EnSight/vtkEnSightGoldBinaryReader.cxx | 8 ++
IO/ExportGL2PS/vtk.module | 2 +-
IO/LSDyna/LSDynaFamily.cxx | 8 ++
Rendering/WebGPU/vtkWGPUContext.cxx | 77 ++++++-------------
Rendering/WebGPU/vtkWebGPUActor.cxx | 5 ++
.../WebGPU/vtkWebGPUInternalsShaderModule.cxx | 2 +-
Rendering/WebGPU/vtkWebGPURenderWindow.cxx | 38 ++++++---
10 files changed, 98 insertions(+), 66 deletions(-)
create mode 100644 Documentation/release/dev/update-dawn-webgpu.md
diff --git a/Documentation/docs/advanced/build_wasm_emscripten.md b/Documentation/docs/advanced/build_wasm_emscripten.md
index ceb50ce1115..c58b1a269c3 100644
--- a/Documentation/docs/advanced/build_wasm_emscripten.md
+++ b/Documentation/docs/advanced/build_wasm_emscripten.md
@@ -54,6 +54,16 @@ For this guide, you will need the following:
These instructions use a specific convention for the source, build and install directories that is appropriate when building VTK for wasm inside
a docker container. Please replace these _root-directory_ paths if VTK is being built outside a docker container.
+### Install emscripten ports (IMPORTANT!)
+Emscripten uses SDL2 to connect user input events to the browser event subsystem. The SDL2 port
+will need to be built if this is the first time you downloaded the EMSDK. The `embuilder` script
+will be on the path if you installed and activated EMSDK as described in the prerequisites.
+```bash
+$ embuilder build sdl2
+```
+
+### Build VTK
+
1. Configure the project with CMake. `emcmake` tells CMake to use the `emscripten` toolchain for cross compilation.
```bash
diff --git a/Documentation/release/dev/update-dawn-webgpu.md b/Documentation/release/dev/update-dawn-webgpu.md
new file mode 100644
index 00000000000..faa8f53bbbe
--- /dev/null
+++ b/Documentation/release/dev/update-dawn-webgpu.md
@@ -0,0 +1,6 @@
+# Update Dawn/WebGPU API in the WebGPU backend
+
+- `WGPUShaderModuleWGSLDescriptor::source` has now been renamed to `WGPUShaderModuleWGSLDescriptor::code`.
+- `SetDeviceLostCallback`(deprecated by webgpu) has been removed in favor of `WGPUDeviceDescriptor::deviceLostCallback` member.
+- `dawn::native::GetAdapter` (deprecated by dawn) has now been renamed to `dawn::native::EnumerateAdapters`.
+- `wgpu::RenderBundleEncoder::colorFormatsCount` (deprecated by webgpu) has now been renamed to `colorFormatCount`. However, emscripten still uses the version of webgpu which shipped with `colorFormatsCount`, so in webassembly, `colorFormatsCount` continues to be used. We will change this after emscripten updates it's webgpu headers.
diff --git a/IO/EnSight/vtkEnSight6BinaryReader.cxx b/IO/EnSight/vtkEnSight6BinaryReader.cxx
index 2cd04c9755b..167e63efd41 100644
--- a/IO/EnSight/vtkEnSight6BinaryReader.cxx
+++ b/IO/EnSight/vtkEnSight6BinaryReader.cxx
@@ -31,6 +31,14 @@
// The BSDs use stat().
#define VTK_STAT_STRUCT struct stat
#define VTK_STAT_FUNC stat
+#elif defined __EMSCRIPTEN__
+#if defined _LARGEFILE64_SOURCE
+#define VTK_STAT_STRUCT struct stat64
+#define VTK_STAT_FUNC stat64
+#else
+#define VTK_STAT_STRUCT struct stat
+#define VTK_STAT_FUNC stat
+#endif
#else
// here, we're relying on _FILE_OFFSET_BITS defined in vtkWin32Header.h to help
// us on POSIX without resorting to using stat64.
diff --git a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx
index e3c81bd5e8c..c374f9879bf 100644
--- a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx
+++ b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx
@@ -37,6 +37,14 @@
// The BSDs use stat().
#define VTK_STAT_STRUCT struct stat
#define VTK_STAT_FUNC stat
+#elif defined __EMSCRIPTEN__
+#if defined _LARGEFILE64_SOURCE
+#define VTK_STAT_STRUCT struct stat64
+#define VTK_STAT_FUNC stat64
+#else
+#define VTK_STAT_STRUCT struct stat
+#define VTK_STAT_FUNC stat
+#endif
#else
// here, we're relying on _FILE_OFFSET_BITS defined in vtkWin32Header.h to help
// us on POSIX without resorting to using stat64.
diff --git a/IO/ExportGL2PS/vtk.module b/IO/ExportGL2PS/vtk.module
index d72b75b482e..97038c7fb17 100644
--- a/IO/ExportGL2PS/vtk.module
+++ b/IO/ExportGL2PS/vtk.module
@@ -3,7 +3,7 @@ NAME
LIBRARY_NAME
vtkIOExportGL2PS
CONDITION
- NOT ANDROID AND NOT APPLE_IOS AND NOT VTK_OPENGL_USE_GLES
+ NOT ANDROID AND NOT APPLE_IOS AND NOT EMSCRIPTEN AND NOT VTK_OPENGL_USE_GLES
IMPLEMENTABLE
IMPLEMENTS
VTK::IOExportGL2PS
diff --git a/IO/LSDyna/LSDynaFamily.cxx b/IO/LSDyna/LSDynaFamily.cxx
index 15755d06840..fdb914ab6fa 100644
--- a/IO/LSDyna/LSDynaFamily.cxx
+++ b/IO/LSDyna/LSDynaFamily.cxx
@@ -24,8 +24,16 @@ namespace
#if (VTK_SIZEOF_ID_TYPE == 8) && !defined(_DARWIN_FEATURE_64_BIT_INODE) && \
!defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
#ifndef _WIN32
+#if defined __EMSCRIPTEN__
+#if defined _LARGEFILE64_SOURCE
#define USE_STAT_64
#else
+#define USE_STAT
+#endif
+#else
+#define USE_STAT_64
+#endif
+#else
#define USE_WIN_STAT_64
#endif
#else
diff --git a/Rendering/WebGPU/vtkWGPUContext.cxx b/Rendering/WebGPU/vtkWGPUContext.cxx
index d0400786707..b280022873a 100644
--- a/Rendering/WebGPU/vtkWGPUContext.cxx
+++ b/Rendering/WebGPU/vtkWGPUContext.cxx
@@ -73,7 +73,7 @@ static void WaitABit()
}
namespace vtkWGPUImpl = vtkWGPUEmscriptenImpl;
-#elif VTK_USE_DAWN_NATIVE
+#elif VTK_USE_DAWN_WEBGPU
#include <cstring>
#include <dawn/dawn_proc.h>
#include <dawn/native/DawnNative.h>
@@ -88,11 +88,11 @@ static struct
struct
{
DawnProcTable ProcTable;
- std::unique_ptr<dawn_native::Instance> Instance = nullptr;
+ std::unique_ptr<dawn::native::Instance> Instance = nullptr;
} DawnNativeEntryPoint;
struct
{
- dawn_native::Adapter Handle;
+ dawn::native::Adapter Handle;
wgpu::BackendType DawnBackendType;
struct
{
@@ -113,10 +113,10 @@ static void Initialize()
}
// Set up the native procs for the global proctable
- GPUContext.DawnNativeEntryPoint.ProcTable = dawn_native::GetProcs();
+ GPUContext.DawnNativeEntryPoint.ProcTable = dawn::native::GetProcs();
dawnProcSetProcs(&GPUContext.DawnNativeEntryPoint.ProcTable);
GPUContext.DawnNativeEntryPoint.Instance =
- std::unique_ptr<dawn_native::Instance>(new dawn_native::Instance());
+ std::unique_ptr<dawn::native::Instance>(new dawn::native::Instance());
GPUContext.DawnNativeEntryPoint.Instance->DiscoverDefaultAdapters();
GPUContext.DawnNativeEntryPoint.Instance->EnableBackendValidation(true);
@@ -125,16 +125,12 @@ static void Initialize()
// are the preferred on their respective platforms, and Vulkan is preferred to
// OpenGL
GPUContext.Adapter.DawnBackendType =
-#if defined(VTK_DAWN_ENABLE_BACKEND_D3D12)
+#if defined(_WIN32)
wgpu::BackendType::D3D12;
-#elif defined(VTK_DAWN_ENABLE_BACKEND_METAL)
+#elif defined(__APPLE__)
wgpu::BackendType::Metal;
-#elif defined(VTK_DAWN_ENABLE_BACKEND_VULKAN)
- wgpu::BackendType::Vulkan;
-#elif defined(VTK_DAWN_ENABLE_BACKEND_OPENGL)
- wgpu::BackendType::OpenGL;
#else
-#error
+ wgpu::BackendType::Vulkan;
#endif
GPUContext.Adapter.Handle = nullptr;
GPUContext.Initialized = true;
@@ -159,48 +155,19 @@ static wgpu::Adapter RequestAdapter(const wgpu::RequestAdapterOptions& options)
{
Initialize();
- // Search available adapters for a good match, in the
- // following priority order
- std::vector<wgpu::AdapterType> typePriority;
- if (options.powerPreference == wgpu::PowerPreference::LowPower)
- {
- // low power
- typePriority = std::vector<wgpu::AdapterType>{
- wgpu::AdapterType::IntegratedGPU,
- wgpu::AdapterType::DiscreteGPU,
- wgpu::AdapterType::CPU,
- };
- }
- else if (options.powerPreference == wgpu::PowerPreference::HighPerformance)
- {
- // high performance
- typePriority = std::vector<wgpu::AdapterType>{
- wgpu::AdapterType::DiscreteGPU,
- wgpu::AdapterType::IntegratedGPU,
- wgpu::AdapterType::CPU,
- };
- }
-
- std::vector<dawn_native::Adapter> adapters =
- GPUContext.DawnNativeEntryPoint.Instance->GetAdapters();
- for (auto reqType : typePriority)
+ std::vector<dawn::native::Adapter> adapters =
+ GPUContext.DawnNativeEntryPoint.Instance->EnumerateAdapters(&options);
+ for (const dawn::native::Adapter& adapter : adapters)
{
- for (const dawn_native::Adapter& adapter : adapters)
- {
- wgpu::AdapterProperties ap;
- adapter.GetProperties(&ap);
- if (ap.adapterType == reqType &&
- (reqType == wgpu::AdapterType::CPU || ap.backendType == GPUContext.Adapter.DawnBackendType))
- {
- GPUContext.Adapter.Handle = adapter;
- SetAdapterInfo(ap);
- std::string msg = vtkfmt::format(
- "Selected adapter {0} (device={1:#x} vendor={2:#x} type={3}/{4})", ap.name, ap.deviceID,
- ap.vendorID, GPUContext.Adapter.Info.TypeName, GPUContext.Adapter.Info.BackendName);
- vtkWGPUContextLog(msg);
- return wgpu::Adapter(GPUContext.Adapter.Handle.Get());
- }
- }
+ GPUContext.Adapter.Handle = adapter;
+ wgpu::AdapterProperties ap;
+ adapter.GetProperties(&ap);
+ SetAdapterInfo(ap);
+ std::string msg = vtkfmt::format(
+ "Selected adapter {0} (device={1:#x} vendor={2:#x} type={3}/{4})", ap.name, ap.deviceID,
+ ap.vendorID, GPUContext.Adapter.Info.TypeName, GPUContext.Adapter.Info.BackendName);
+ vtkWGPUContextLog(msg);
+ return wgpu::Adapter(GPUContext.Adapter.Handle.Get());
}
return nullptr;
@@ -234,7 +201,7 @@ static void LogAvailableAdapters()
std::stringstream msg;
msg << "Available adapters:\n";
- for (auto&& a : GPUContext.DawnNativeEntryPoint.Instance->GetAdapters())
+ for (auto&& a : GPUContext.DawnNativeEntryPoint.Instance->EnumerateAdapters())
{
wgpu::AdapterProperties p;
a.GetProperties(&p);
@@ -297,7 +264,7 @@ static const char* AdapterTypeName(wgpu::AdapterType t)
}
}
namespace vtkWGPUImpl = vtkWGPUDawnImpl;
-#endif // VTK_USE_DAWN_NATIVE
+#endif // VTK_USE_DAWN_WEBGPU
//------------------------------------------------------------------------------
void vtkWGPUContext::LogAvailableAdapters()
diff --git a/Rendering/WebGPU/vtkWebGPUActor.cxx b/Rendering/WebGPU/vtkWebGPUActor.cxx
index 4121547120e..63aa4d5ede1 100644
--- a/Rendering/WebGPU/vtkWebGPUActor.cxx
+++ b/Rendering/WebGPU/vtkWebGPUActor.cxx
@@ -79,7 +79,12 @@ wgpu::RenderBundle vtkWebGPUActor::RenderToBundle(vtkRenderer* ren, vtkMapper* m
const int sampleCount = wgpuRenWin->GetMultiSamples() ? wgpuRenWin->GetMultiSamples() : 1;
wgpu::RenderBundleEncoderDescriptor bundleEncDesc;
+#if __EMSCRIPTEN__
+ // FIXME: Update this after emscripten webgpu updates to colorFormatCount
bundleEncDesc.colorFormatsCount = 1;
+#else
+ bundleEncDesc.colorFormatCount = 1;
+#endif
bundleEncDesc.colorFormats = &colorFormat;
bundleEncDesc.depthStencilFormat = wgpuRenWin->GetDepthStencilFormat();
bundleEncDesc.sampleCount = sampleCount;
diff --git a/Rendering/WebGPU/vtkWebGPUInternalsShaderModule.cxx b/Rendering/WebGPU/vtkWebGPUInternalsShaderModule.cxx
index 2d0731ac253..705fb9b59ac 100644
--- a/Rendering/WebGPU/vtkWebGPUInternalsShaderModule.cxx
+++ b/Rendering/WebGPU/vtkWebGPUInternalsShaderModule.cxx
@@ -8,7 +8,7 @@ wgpu::ShaderModule vtkWebGPUInternalsShaderModule::CreateFromWGSL(
const wgpu::Device& device, const std::string& source)
{
wgpu::ShaderModuleWGSLDescriptor wgslDesc;
- wgslDesc.source = source.c_str();
+ wgslDesc.code = source.c_str();
wgpu::ShaderModuleDescriptor descriptor;
descriptor.nextInChain = &wgslDesc;
diff --git a/Rendering/WebGPU/vtkWebGPURenderWindow.cxx b/Rendering/WebGPU/vtkWebGPURenderWindow.cxx
index f0e824f0e54..95a7d7fd605 100644
--- a/Rendering/WebGPU/vtkWebGPURenderWindow.cxx
+++ b/Rendering/WebGPU/vtkWebGPURenderWindow.cxx
@@ -61,8 +61,9 @@ void device_lost_callback(WGPUDeviceLostReason reason, char const* message, void
default:
reason_type_lbl = "Unknown";
}
- vtkErrorWithObjectMacro(reinterpret_cast<vtkObject*>(self),
- << "Device lost! Reason : " << message << " Reason Type: " << reason_type_lbl);
+ auto renWin = vtkRenderWindow::SafeDownCast(reinterpret_cast<vtkObject*>(self));
+ vtkWarningWithObjectMacro(
+ renWin, << "Device lost! Reason : " << message << " Reason Type: " << reason_type_lbl);
}
struct PixelReadDescriptor
@@ -136,6 +137,8 @@ bool vtkWebGPURenderWindow::WGPUInit()
this->Adapter = vtkWGPUContext::RequestAdapter(options);
wgpu::DeviceDescriptor deviceDescriptor = {};
deviceDescriptor.label = "vtkWebGPURenderWindow::WGPUInit";
+ deviceDescriptor.deviceLostCallback = &device_lost_callback;
+ deviceDescriptor.deviceLostUserdata = this;
///@{ TODO: Populate feature requests
// ...
///@}
@@ -150,7 +153,6 @@ bool vtkWebGPURenderWindow::WGPUInit()
}
// install error handler
this->Device.SetUncapturedErrorCallback(&::print_wgpu_error, this);
- this->Device.SetDeviceLostCallback(&::device_lost_callback, this);
///@}
return true;
}
@@ -161,7 +163,6 @@ void vtkWebGPURenderWindow::WGPUFinalize()
vtkDebugMacro(<< __func__ << " WGPUInitialized=" << this->WGPUInitialized);
this->DestroyDepthStencilTexture();
this->DestroySwapChain();
- this->Device.SetDeviceLostCallback(nullptr, nullptr);
this->Device = nullptr;
}
@@ -586,18 +587,35 @@ void vtkWebGPURenderWindow::ReadPixels()
this->BufferMapReadContext.src = this->ColorAttachment.OffscreenBuffer;
this->BufferMapReadContext.size = this->ColorAttachment.OffscreenBuffer.GetSize();
this->BufferMapReadContext.dst = this->CachedPixelBytes;
+ this->BufferMapReadContext.window = this;
auto onBufferMapped = [](WGPUBufferMapAsyncStatus status, void* userdata) {
auto ctx = reinterpret_cast<MappingContext*>(userdata);
switch (status)
{
- case WGPUBufferMapAsyncStatus_DestroyedBeforeCallback:
+ case WGPUBufferMapAsyncStatus_ValidationError:
+ vtkErrorWithObjectMacro(ctx->window, << "Validation error occurred");
+ break;
+ case WGPUBufferMapAsyncStatus_Unknown:
+ vtkErrorWithObjectMacro(ctx->window, << "Unknown error occurred");
+ break;
case WGPUBufferMapAsyncStatus_DeviceLost:
- case WGPUBufferMapAsyncStatus_Error:
+ vtkErrorWithObjectMacro(ctx->window, << "Device lost!");
+ break;
+ case WGPUBufferMapAsyncStatus_DestroyedBeforeCallback:
+ vtkErrorWithObjectMacro(ctx->window, << "Buffer destroyed before callback");
+ break;
case WGPUBufferMapAsyncStatus_UnmappedBeforeCallback:
- case WGPUBufferMapAsyncStatus_Unknown:
- default:
- assert(false);
+ vtkErrorWithObjectMacro(ctx->window, << "Buffer unmapped before callback");
+ break;
+ case WGPUBufferMapAsyncStatus_MappingAlreadyPending:
+ vtkErrorWithObjectMacro(ctx->window, << "Buffer already has a mapping pending completion");
+ break;
+ case WGPUBufferMapAsyncStatus_OffsetOutOfRange:
+ vtkErrorWithObjectMacro(ctx->window, << "Buffer offset out of range");
+ break;
+ case WGPUBufferMapAsyncStatus_SizeOutOfRange:
+ vtkErrorWithObjectMacro(ctx->window, << "Buffer size out of range");
break;
case WGPUBufferMapAsyncStatus_Success:
{
@@ -611,6 +629,8 @@ void vtkWebGPURenderWindow::ReadPixels()
std::copy(mapped, mapped + ctx->size, ctx->dst->GetPointer(0));
}
break;
+ default:
+ break;
}
ctx->src.Unmap();
};
--
GitLab

View File

@ -0,0 +1,170 @@
From 0f4635e876560d00df58c809526435180d0b1912 Mon Sep 17 00:00:00 2001
From: David Gobbi <david.gobbi@gmail.com>
Date: Sun, 18 Aug 2024 09:24:26 -0600
Subject: [PATCH] Prefer SystemTools::Stat over system stat/stat64
This keeps all of the stat() calls in VTK centralized (except the
ones implemented in ThirdParty). Note that kwsys no longer defines
any LSF support macros since 2019, so this might impact the ability
to use large files on some 32-bit platforms, but hopefully any
platforms where this is a concern will honor _FILE_OFFSET_BITS=64
like 32-bit glibc does.
---
IO/EnSight/vtkEnSight6BinaryReader.cxx | 28 ++-----------
IO/EnSight/vtkEnSightGoldBinaryReader.cxx | 25 +-----------
IO/LSDyna/LSDynaFamily.cxx | 48 +----------------------
3 files changed, 8 insertions(+), 93 deletions(-)
diff --git a/IO/EnSight/vtkEnSight6BinaryReader.cxx b/IO/EnSight/vtkEnSight6BinaryReader.cxx
index 167e63efd41..1f26a171c26 100644
--- a/IO/EnSight/vtkEnSight6BinaryReader.cxx
+++ b/IO/EnSight/vtkEnSight6BinaryReader.cxx
@@ -18,33 +18,13 @@
#include "vtkUnstructuredGrid.h"
#include "vtksys/Encoding.hxx"
#include "vtksys/FStream.hxx"
+#include "vtksys/SystemTools.hxx"
#include <cctype>
#include <string>
-#include <sys/stat.h>
-
-#if defined(_WIN32)
-#define VTK_STAT_STRUCT struct _stat64
-#define VTK_STAT_FUNC _stat64
-#elif defined _DARWIN_FEATURE_64_BIT_INODE || defined __FreeBSD__ || defined __NetBSD__ || \
- defined __OpenBSD__
-// The BSDs use stat().
-#define VTK_STAT_STRUCT struct stat
-#define VTK_STAT_FUNC stat
-#elif defined __EMSCRIPTEN__
-#if defined _LARGEFILE64_SOURCE
-#define VTK_STAT_STRUCT struct stat64
-#define VTK_STAT_FUNC stat64
-#else
-#define VTK_STAT_STRUCT struct stat
-#define VTK_STAT_FUNC stat
-#endif
-#else
-// here, we're relying on _FILE_OFFSET_BITS defined in vtkWin32Header.h to help
-// us on POSIX without resorting to using stat64.
-#define VTK_STAT_STRUCT struct stat64
-#define VTK_STAT_FUNC stat64
-#endif
+
+#define VTK_STAT_STRUCT vtksys::SystemTools::Stat_t
+#define VTK_STAT_FUNC vtksys::SystemTools::Stat
VTK_ABI_NAMESPACE_BEGIN
vtkStandardNewMacro(vtkEnSight6BinaryReader);
diff --git a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx
index ff8cad7bd46..75c126a2b0c 100644
--- a/IO/EnSight/vtkEnSightGoldBinaryReader.cxx
+++ b/IO/EnSight/vtkEnSightGoldBinaryReader.cxx
@@ -26,31 +26,10 @@
#include <map>
#include <numeric>
#include <string>
-#include <sys/stat.h>
#include <vector>
-#if defined(_WIN32)
-#define VTK_STAT_STRUCT struct _stat64
-#define VTK_STAT_FUNC _stat64
-#elif defined _DARWIN_FEATURE_64_BIT_INODE || defined __FreeBSD__ || defined __NetBSD__ || \
- defined __OpenBSD__
-// The BSDs use stat().
-#define VTK_STAT_STRUCT struct stat
-#define VTK_STAT_FUNC stat
-#elif defined __EMSCRIPTEN__
-#if defined _LARGEFILE64_SOURCE
-#define VTK_STAT_STRUCT struct stat64
-#define VTK_STAT_FUNC stat64
-#else
-#define VTK_STAT_STRUCT struct stat
-#define VTK_STAT_FUNC stat
-#endif
-#else
-// here, we're relying on _FILE_OFFSET_BITS defined in vtkWin32Header.h to help
-// us on POSIX without resorting to using stat64.
-#define VTK_STAT_STRUCT struct stat64
-#define VTK_STAT_FUNC stat64
-#endif
+#define VTK_STAT_STRUCT vtksys::SystemTools::Stat_t
+#define VTK_STAT_FUNC vtksys::SystemTools::Stat
VTK_ABI_NAMESPACE_BEGIN
class vtkEnSightGoldBinaryReader::vtkUtilities
diff --git a/IO/LSDyna/LSDynaFamily.cxx b/IO/LSDyna/LSDynaFamily.cxx
index fdb914ab6fa..1574d97b281 100644
--- a/IO/LSDyna/LSDynaFamily.cxx
+++ b/IO/LSDyna/LSDynaFamily.cxx
@@ -18,44 +18,6 @@
VTK_ABI_NAMESPACE_BEGIN
namespace
{
-// Decide which of 3 stat varieties to use: stat, stat64, __stat64
-// Usually stat uses 32 bit fields, and stat64 (with underscores in Windows) uses 64 bit fields.
-// But on the BSDs, stat uses 64 bit fields these days.
-#if (VTK_SIZEOF_ID_TYPE == 8) && !defined(_DARWIN_FEATURE_64_BIT_INODE) && \
- !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
-#ifndef _WIN32
-#if defined __EMSCRIPTEN__
-#if defined _LARGEFILE64_SOURCE
-#define USE_STAT_64
-#else
-#define USE_STAT
-#endif
-#else
-#define USE_STAT_64
-#endif
-#else
-#define USE_WIN_STAT_64
-#endif
-#else
-#define USE_STAT
-#endif
-
-#if defined(USE_STAT_64)
-int LS_DYNA_STAT(const char* fname, struct stat64& s)
-{
- return stat64(fname, &s);
-}
-#elif defined(USE_WIN_STAT_64)
-int LS_DYNA_STAT(const char* fname, struct __stat64& s)
-{
- return __stat64(fname, &s);
-}
-#elif defined(USE_STAT)
-int LS_DYNA_STAT(const char* fname, struct stat& s)
-{
- return stat(fname, &s);
-}
-#endif
vtkLSDynaFile_t VTK_LSDYNA_OPENFILE(const char* fname)
{
@@ -205,18 +167,12 @@ int LSDynaFamily::ScanDatabaseDirectory()
int adaptLevel = 0;
int tryAdapt = 0; // don't try an adaptive step unless we have one good file at the current level.
bool adapted = true; // true when advancing over a mesh adaptation.
-#if defined(USE_WIN_STAT_64)
- struct __stat64 st;
-#elif defined(USE_STAT_64)
- struct stat64 st;
-#elif defined(USE_STAT)
- struct stat st;
-#endif
+ vtksys::SystemTools::Stat_t st;
while (tryAdapt >= 0)
{
tmpFile = vtkLSGetFamilyFileName(
this->DatabaseDirectory.c_str(), this->DatabaseBaseName, adaptLevel, filenum);
- if (LS_DYNA_STAT(tmpFile.c_str(), st) == 0)
+ if (vtksys::SystemTools::Stat(tmpFile.c_str(), &st) == 0)
{
if (adapted)
{
--
GitLab

View File

@ -1,13 +0,0 @@
Source: https://src.fedoraproject.org/rpms/vtk/blob/1a12f28665b2f24537b98fcf4b3fb3a176fa7fba/f/vtk-include.patch
diff -up VTK-9.2.5/IO/Image/vtkSEPReader.h.include VTK-9.2.5/IO/Image/vtkSEPReader.h
--- VTK-9.2.5/IO/Image/vtkSEPReader.h.include 2023-01-05 08:51:35.000000000 -0700
+++ VTK-9.2.5/IO/Image/vtkSEPReader.h 2023-01-17 07:43:41.988095734 -0700
@@ -26,6 +26,7 @@
#include "vtkNew.h" // for ivars
#include <array> // for std::array
+#include <cstdint> // for std::uint8_t
#include <string> // for std::string
namespace details

View File

@ -11,9 +11,9 @@ index ca5f15de..99c2bbdd 100644
#else
-#include <sys/unistd.h>
+#include <unistd.h>
#endif
#ifdef SEACAS_HAVE_MPI
#if defined(__APPLE__) && defined(__MACH__)
#include <sys/param.h>
#include <sys/mount.h>
@@ -35,9 +35,6 @@
#include <cstdio>

View File

@ -1,7 +1,7 @@
# Template file for 'vtk'
pkgname=vtk
version=9.2.6
revision=3
version=9.3.1
revision=1
build_style=cmake
# vtk can be huge, especially with -DVTK_BUILD_ALL_MODULES=ON"
# Build only the core modules plus python bindings for now
@ -14,6 +14,7 @@ configure_args="-DBUILD_SHARED_LIBS=ON -DVTK_FORBID_DOWNLOADS=ON
-DVTK_MODULE_USE_EXTERNAL_VTK_ioss=OFF
-DVTK_MODULE_USE_EXTERNAL_VTK_cgns=OFF
-DVTK_MODULE_USE_EXTERNAL_VTK_verdict=OFF
-DVTK_MODULE_USE_EXTERNAL_VTK_fast_float=OFF
-DVTK_WRAP_PYTHON=ON -DVTK_PYTHON_VERSION=3"
# vtk forks libharu, bumps to v2.4.0, and requires libharu>=2.4.0
makedepends="zlib-devel freetype-devel liblz4-devel expat-devel MesaLib-devel
@ -26,7 +27,7 @@ maintainer="Piraty <mail@piraty.dev>"
license="BSD-3-Clause"
homepage="https://www.vtk.org"
distfiles="https://www.vtk.org/files/release/${version:0:3}/VTK-${version}.tar.gz"
checksum=06fc8d49c4e56f498c40fcb38a563ed8d4ec31358d0101e8988f0bb4d539dd12
checksum=8354ec084ea0d2dc3d23dbe4243823c4bfc270382d0ce8d658939fd50061cab8
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
makedepends+=" libexecinfo-devel"