Unify vkb::ShaderModule and vkb::core::HPPShaderModule into vkb::core::ShaderModule<bindingType> - #1556
Unify vkb::ShaderModule and vkb::core::HPPShaderModule into vkb::core::ShaderModule<bindingType>#1556asuessenbach wants to merge 15 commits into
Conversation
07b2785 to
b8689b5
Compare
…::ShaderModule<bindingType>
b8689b5 to
aab508d
Compare
* Add sample for descriptor heaps * First working version * Trying to fix clang format * Clang format * Add Slang and HLSL shaders * No longer pre-record command buffers * Cleanup * Cleanup * UBOs per Frame * Add precompiled SPIR-V * Override render pass / framebuffer creation Both not required, as the sample uses dynamic rendering * Slight restructuring * Slight restructuring * Clang format * Cleanup * Remove extension not required Core since 1.1 * Reserved range offsets * Variable naming * Minor fixes * Adjust offset and size calculations * Add tutorial for descriptor heap sample * Add compiled shaders * Add new sample to navigation * Clean up, push data documentation * Fix clang format * Variable naming * Spelling and grammar * Add comparison to traditional descriptor bindings * Minor fix * Add some key benefits of descriptor heaps * Address PR feedback * Adjust heap size calculations * Address PR feedback * Add and use non-const memory access * Use non-uniform indexing to access textures * Add note on where to find other binding mapping options
* Add simple API sample for VK_EXT_present_timing. * Address review comments - Fix "times domains" typo in README - Add missing blank lines before bullet lists in README - Rename desired_swapchain_images to desired_swapchain_image_count - Simplify can_use_present_timing boolean assignment * Remove double-assignment of time domains / timing properties counters
|
I'm hitting 2 problems: [error] Error Message: unordered_map::at followed by: |
…::ShaderModule<bindingType>
…Vulkan-Samples into unify_ShaderModule
|
@tomek-brcm Thanks for spotting this failure. Fix was easy, I've no idea how that could have slept through. Besides that, this PR now fixes an error I get with 2 samples on main: hpp_pipeline_cache: pipeline_cache: |
The merge-base changed after approval.
* Add sample demonstrating VK_EXT_layer_settings usage * - Update README with GitHub repository link for sample * Add local debug messenger and UI overlay for validation messages in LayerSettingsSample * Adjust code formatting in LayerSettingsSample for improved readability * Add interactive validation scenarios with toggleable UI and message caching Transforms layer_settings sample into an interactive demonstration with three toggleable validation scenarios (wrong buffer flags, suboptimal transitions, small allocations). Executes validation-triggering operations once during setup using one-time command buffers to work with message caching. Adds per-scenario warning/error counters, message caching, and resource cleanup. Updates UI with checkboxes, statistics display, and scrollable message viewer with improved styling. * Update copyright year to 2026 * Refactor scenario state tracking from array to unordered_map and modernize C++ usage Replaces `std::array` with `std::unordered_map<Scenario, ScenarioState>` for scenario state storage, removing the `Scenario::Count` sentinel. Adds custom hash functor for the enum key. Modernizes code with `std::format`, `std::ranges`, and direct use of `vkCreateDebugUtilsMessengerEXT`. Updates README list formatting, adds `validation_features_supported()` helper, and initializes scenario map entries in constructor. Improves code consistency with better whitespace and comment cleanup. * Fix indentation to use tabs consistently throughout layer_settings files * Replace std::format with fmt::format and refactor loop variable naming Removes unused `<format>` include and switches to `fmt::format` for formatting. Renames loop variable from `kv` to `scenario` for better clarity when iterating over scenario states map. * Add note requested by comments. * Add instance extension and layer setting registration to VulkanSample base class Adds `add_instance_extension()` and `add_layer_setting()` methods to allow samples to register instance-level extensions and layer settings. Introduces `instance_extensions` map and `layer_settings` vector as member variables. Integrates these into `request_instance_extensions()` and `request_layer_settings()` to automatically apply sample-specific configurations during instance creation. * Fix whitespace alignment in vulkan_sample.h and correct method name in layer_settings Aligns `present_mode` and `present_mode_priority_list` declarations with consistent spacing. Replaces incorrect `is_enabled()` call with `is_extension_enabled()` for debug utils extension check. * Revert the CRLF to Unix-style line endings that caused the whole file change inadvertently. * Address comments from Andreas' latest feedback. replaced constructor-time add_instance_extension/add_layer_setting calls with proper virtual overrides. * address requested changes.
…::ShaderModule<bindingType>
…::ShaderModule<bindingType>
…Vulkan-Samples into unify_ShaderModule
The merge-base changed after approval.
Description
Next unified class on C- and C++-bindings.
Comes together with unification of
vkb::ShaderResourceType,vkb::ShaderResourceMode,vkb::ShaderResourceQualifiers,vkb::ShaderResource,vkb::ShaderVariant,vkb::ShaderSource, andvkb::SPIRVReflection.Build tested on Win11 with VS2026. Run tested on Win11 with NVidia GPU.
General Checklist:
Please ensure the following points are checked:
Note: The Samples CI runs a number of checks including:
If this PR contains framework changes:
batchcommand line argument to make sure all samples still work properlySample Checklist
If your PR contains a new or modified sample, these further checks must be carried out in addition to the General Checklist: