Skip to content

New packages: SPIRV-Cross-1.4.350.1, SPIRV-Reflect-1.4.350.1 - #61811

Open
Rutpiv wants to merge 2 commits into
void-linux:masterfrom
Rutpiv:SPIRV-Cross-SPIRV-Reflect
Open

New packages: SPIRV-Cross-1.4.350.1, SPIRV-Reflect-1.4.350.1#61811
Rutpiv wants to merge 2 commits into
void-linux:masterfrom
Rutpiv:SPIRV-Cross-SPIRV-Reflect

Conversation

@Rutpiv

@Rutpiv Rutpiv commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Testing the changes

  • I tested the changes in this PR: YES

New package

Local build testing

  • I built this PR locally for my native architecture (x86_64)
  • I built this PR locally for these architectures using specific masterdirs:
    • x86_64-musl
    • i686
  • I built this PR locally for these architectures (crossbuilds):
    • aarch64
    • aarch64-musl
    • armv7l
    • armv7l-musl
    • armv6l
    • armv6l-musl

@Rutpiv Rutpiv changed the title Spirv cross spirv reflect New packages: SPIRV-Cross-1.4.350.1, SPIRV-Reflect-1.4.350.1 Aug 3, 2026
@Rutpiv

Rutpiv commented Aug 3, 2026

Copy link
Copy Markdown
Contributor Author

Continuing from #61152, bringing in more of the SDK components Void is still missing. SPIRV-Reflect is a submodule of gfxreconstruct, which I intend to package next.

SPIRV-Cross is built with -DSPIRV_CROSS_SHARED=ON. The C API is the only interface upstream ships as a shared library, the C++ API is static only by upstream design since its ABI is not stable, so the static libraries stay in -devel or the C++ headers there are unusable. SPIRV_CROSS_STATIC also has to stay on because the CLI links against it. Tests need Python and reference binaries, so they are disabled. Tested on the GLSL, HLSL, MSL and reflection backends, with the GLSL output round tripped through glslangValidator under --vulkan-semantics, and consumed from an out of tree CMake project through both exported configs, shared and static. The SONAME matches the common/shlibs entry.

SPIRV-Reflect carries one patch. The installed spirv_reflect.h defaults to a source relative include of the vendored SPIRV-Headers copy, which does not exist after installation, so it fails to compile in any consumer. Upstream provides SPIRV_REFLECT_USE_SYSTEM_SPIRV_H, but every consumer would have to repeat the define, so the patch takes the system header unconditionally. SPIRV-Headers is added to makedepends and to the -devel dependencies. Tested against a fragment shader with a deliberate layout, a combined image sampler at set 0 binding 0, a uniform buffer at set 1 binding 3 and a push constant block: the CLI reports all three, and the same comes back through libspirv-reflect-static.a and the installed header.

@classabbyamp classabbyamp added the new-package This PR adds a new package label Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-package This PR adds a new package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants