Skip to content

Subgroups operations merge#9

Open
gpx1000 wants to merge 202 commits intoMobica:mainfrom
gpx1000:subgroups_operations_merge
Open

Subgroups operations merge#9
gpx1000 wants to merge 202 commits intoMobica:mainfrom
gpx1000:subgroups_operations_merge

Conversation

@gpx1000
Copy link

@gpx1000 gpx1000 commented Dec 31, 2025

Description

This has all of the fixes that I could do. Submitting as a PR here. Hopefully original authors can accept a PR and we can get this excellent sample merged.

Fixes #

General Checklist:

Please ensure the following points are checked:

  • My code follows the coding style
  • I have reviewed file licenses
  • I have commented any added functions (in line with Doxygen)
  • I have commented any code that could be hard to understand
  • My changes do not add any new compiler warnings
  • My changes do not add any new validation layer errors or warnings
  • I have used existing framework/helper functions where possible
  • My changes do not add any regressions
  • I have tested every sample to ensure everything runs correctly
  • This PR describes the scope and expected impact of the changes I am making

Note: The Samples CI runs a number of checks including:

  • I have updated the header Copyright to reflect the current year (CI build will fail if Copyright is out of date)
  • My changes build on Windows, Linux, macOS and Android. Otherwise I have documented any exceptions

If this PR contains framework changes:

  • I did a full batch run using the batch command line argument to make sure all samples still work properly

Sample Checklist

If your PR contains a new or modified sample, these further checks must be carried out in addition to the General Checklist:

  • I have tested the sample on at least one compliant Vulkan implementation
  • If the sample is vendor-specific, I have tagged it appropriately
  • I have stated on what implementation the sample has been tested so that others can test on different implementations and platforms
  • Any dependent assets have been merged and published in downstream modules
  • For new samples, I have added a paragraph with a summary to the appropriate chapter in the readme of the folder that the sample belongs to e.g. api samples readme
  • For new samples, I have added a tutorial README.md file to guide users through what they need to know to implement code using this feature. For example, see conditional_rendering
  • For new samples, I have added a link to the Antora navigation so that the sample will be listed at the Vulkan documentation site

gary-sweet and others added 29 commits August 25, 2025 08:34
…up#1392)

* Fix use of --width and --height by setting extent earlier

dynamic_rendering_local_read (at least) would go horribly wrong
if --width and --height were given on the command line.

This change ensures the framework extent is set before it's used
by the samples (in setup_render_pass() for DRLR).

* Moved the setting further up in the function
* Added Slang shaders for dynamic rendering local read sample

* Fix normal calculation for Slang shader

* Enable extensions required when running with Slang shaders

* Added HLSL shaders for dynamic rendering local read sample

* Added SPIR-V files

* Added Slang shaders for dynamic rendering sample

* Update copyright headers

* Trying to fix clang format

Seems to have issues with code in defines

* Add HLSL and Slang shaders for Vulkan 1.3 hello triangle samples

* Update copyrights

* Force column-major layout for Slang shader compilation

* Add clamping to HLSL and Slang shader

* Fix copyright
…hronosGroup#1405)

* Update apple deployment targets to macOS 13.3 and iOS 16.3

* Update iOS Simulator build config and instructions for arm64 hosts

* Update iOS Simulator build instructions to require SDK 1.4.321.0 or later
…core::PhysicalDevice<bindingType> (KhronosGroup#1404)

* Unify vkb::PhysicalDevice and vkb::core::HPPPhysicalDevice into vkb::core::PhysicalDevice<bindingType>

* Add HPPType<VkPhysicalDevicePortabilitySubsetFeaturesKHR>, guarded by VKB_ENABLE_PORTABILITY

* Fix assert in constructor of VulkanStatsProvider.
* Add simple_tensor_and_data_graph sample

* Added initial tensor and data graph sample, common framework and documentation.

Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>

* Address 1st round of PR comments

* Fixed issues highlighted by reviewers
* Fixed copyright headers

Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>

* Fix copyright headers and formatting

Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>

* Fix build after merging new PhysicalDevice API

Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>

* Disable building the sample on unsupported platforms

Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>

* Reformatted with clang-format-15

Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>

* Documentation improvements

Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>

* Address .adoc link issues

Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>

* Update simple_tensor_and_data_graph sample to latest main

Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>

* Fix clang-format issues and add Int64 check

Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>

---------

Signed-off-by: Aron Virginas-Tar <aron.virginas-tar@arm.com>
Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Co-authored-by: Matthew Sloyan <70519899+matthewsloyanARM@users.noreply.github.com>
Co-authored-by: Matthew Sloyan <matthew.sloyan@arm.com>
KhronosGroup#1413)

* unify_Node

* Fix dynamic_cast to reinterpret_cast in Node<bindingType>::get_parent()

+ two minor improvements
* Sample for fragment density map

* Fix rebase conflicts

* Add shaders spirv

* fix format issues in CLI

* PR improvements
…sGroup#1417)

* Add the ability to specify a custom alignment when creating  a buffer.

- Use the correct alignment for scratch buffers and SBT's.

* Update ray_queries, ray_tracing_reflection and mobile_nerf_rayquery samples to use the correct alignment.

* Fix missing sType

* Formatting fixes

* Fix formatting in acceleration_structure.h

* Change alignment member in buffer.h to be private.
* Enabled SPIR-V 1.4 extension and use VK 1.1 if required

This is needed to get proper support for SPIR-V compiled from Slang shaders

* Add slang shaders for

- instancing
- conditional rendering
- conservative rasterization

* Add slang shaders for

- dynamic uniform buffers
- descriptor buffer basic
- fragment shading rate

* Add slang shaders for

- hdr (+hpp)
- graphics pipeline library
- mesh shading (+hpp)

* Fix copyright

* Add slang shaders for

- texture loading (+hpp)
- push descriptors (+hpp
- open cl interop

* Fix copyright

* Add slang shaders for

- separte image sampler (+hpp)
- texture mipmap generation (+hpp)
- shader debug printf
- texture compression basisu

* Add slang shaders for

- compute nbody (+hpp)

* Add slang shaders for

- dynamic primitive clipping
- logic op dynamic state
- sparse image

* Add slang shaders for

- color write enable
- debug utils
- dynamic line rasterization

* Add slang shaders for

- ray queries
- ray tracing basics
- ray tracing extended
- ray tracing position fetch

* Update reeadme for shaders

* Add slang shaders for

- terrain tessellation
- patch control points
- synchronization 2
- vertex dynamic state

* Add slang shaders to hpp variant

* Add slang shaders for

- descriptor indexing

* Add slang shaders for

- dyamic blending

* Add slang shaders for

- time stamp queries (+hpp)
- host image copy

* Add slang shaders for

- fragment shader barycentric
- memory budget

* Add slang shaders for

- calibrated timestamps
- dynamic multisample rasterization

* Add slang shaders for

- open gl interop

* Add slang shaders for

- portability

* Fix copyright

* Skip Slang offline compilation on MacOS/iOS when run through CI

Slang compiler in current SDK is broken
Not necessary anway as we ship offline compiled SPIR-V anyway, so unnecessary waste of CI time

* Fix copyright

* Add slang shaders for

- gshader_to_mshader

Still needs some lighting fixes

* Fix lighting for gshader_to_mshader

Calculate normal matrix on CPU

* Add slang shaders for

- extended dynamic state2

* Fix descriptor indexing not properly displaying right side of screen when using Slang

* Add offline compiled SPIR-V files for slang shaders

* Enalbe VK_KHR_Shader_Draw_Parameters when using Slang

* Add slang shaders for

- timeline semaphores

* Add slang shaders for

- buffer device address

* Recompile Slang shader with updated compiler version

* Fix ambient factor

* Clamp specular contribution

* Fix copyright

* Enable device extensions required for proper Slang support

* Enable feature required when using Slang

* Add CMake option to disable Slang shader compilation

* Add note on Slang compiler requirements

* Fix normal calculation

* Check if required feature is supported and if not exit gracefully

* Address pull request feedback

Match GLSL blur parameters

* Address pull request feedback

Ident using spaces

* Address pull request feedback

Remove unused input

* Address pull request feedback

Ident using spaces

* Address pull request feedback

Adjust light position to match GLSL

* Address pull request feedback

Cast to float3x3

* Address pull request feedback

Remove unused normal input

* Address pull request feedback

Get size of blur parameters from array instead of hard-coding

* Trying to fix clang format

* Address pull request feedback

Use point size related built-ins

* Address pull request feedback

Use getCount for const array size

* Address pull request feedback

* Address pull request feedback and cleanup

* Address pull request feedback

* Clean up existing shaders

Remove attributes not required by Slang

* Spaces instead of tabs

* Address PR feedback
* Set default queue priorities to 0.0f

* Adjust queue priorities to 0.5f
…ronosGroup#1453)

In the default constructor, textures.envmap.sampler is initialized
to a non‑null garbage value (not VK_NULL_HANDLE). When timestamps
aren’t supported, load_texture_cubemap() doesn’t overwrite it, so
the destructor calls vkDestroySampler(...) with this invalid
handle, causing a crash.

Signed-off-by: Ryan Zhang <ryan.zhang@nxp.com>
Co-authored-by: Ryan Zhang <ryan.zhang@nxp.com>
…onosGroup#1450)

* Fix pMaxDeviation parameter type in calibrated_timestamps sample

* Apply clang-format

* comment revised
…s_merge

# Conflicts:
#	samples/CMakeLists.txt
…ns sample

- Use correct pipeline layouts when binding descriptor sets in DEBUG_SUBGROUPS_SWITCH_ENABLE mode
- Create separate pipeline layouts for subgroups_off variants
- Update shader loading to use pre-compiled .spv files
- Add GLSLC target SPIR-V 1.4 compilation flag
- Fix descriptor pool to include COMBINED_IMAGE_SAMPLER type
- Update PhysicalDevice type to PhysicalDeviceC
- Remove glsl_compiler.h include and GLSLCompiler setup (now handled by build system)
- Mark destructor as override
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.