Open
Conversation
…hat the debugger can locate the run-time dependencies. This makes it possible to compile and launch the projects directly within visual studio for example. - Calling the above function in projects that need it. Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
f811041 to
bf78dab
Compare
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
…structure. OCIO library files and the test files are separately grouped for better clarity. Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com>
…dation#2264) Signed-off-by: Doug Walker <doug.walker@autodesk.com>
…ation#2261) Removed the declaration of 'unit_test_failures' from UnitTest.h. Signed-off-by: Kevin Wheatley <kevin.wheatley@framestore.com> Co-authored-by: Doug Walker <doug.walker@autodesk.com>
…cademySoftwareFoundation#2265) * Adding reading and writing support for SMPTE ST 2036-1 compliant CLF files. - Added "Id" element support per the spec. - Extended the CTFVersion class to handle non-numeric formats per the spec (which uses xmlns as the version) - CLF xml parser now strips the namespaces from the elements by default. This makes it possible to parse files with simple name spaces but complex name-spaced clf files may still fail. There is an internal switch to turn on/off the name space stripping. This way elements which need to retain the name spaces (such as the Info element) can still get the un-stripped names. - Extended the Input and Output Descriptor collection to hold multiple entries (similar to Description field) - CLF writer now writes the SMPTE xmlns version as well as the CompCLFVersion attribute. The resulting files can be read both by the Academy CLF parsers and SMPTE CLF parsers. - Generated cache hash IDs are now in the 8-4-4-4-12 UUID format to help complying with SMPTE id requirements - ociomakeclf tool now takes "--generateid" switch to for inserting newly added "Id element" into the target clf file. TODO: - Description and Descriptor elements need to collect the language attribute. - non-default namespace attributes (e.g. xmlns:foo) needs to be collected as root level attributes. - Those two TODO items need some re-factoring in the data collection code. Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com> * - Per the code review, exposing the newly added constant METADATA_ID_ELEMENT in python too. Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com> * - re-worked some part of the CLF parser and the CTFReaderTransform class to be able to collect richer metadata. - Now collecting the language attribute of the Description, input and output descriptor elements. - Also collecting the non-default xmlns attributes at the root level. - Updated the tests accordingly. - Replaced clf/pre-smpte_only/matrix_example.clf with clf/matrix_example_utf8.clf in some for some Reference tests. - Added format information to the ociomakeclf tool's help text. Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com> * - nmake the compilers happy. Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com> * - make the compilers happy pt2 Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com> * - make the compilers happy pt3 (we need to make Windows compiler settings as picky as other platforms) Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com> --------- Signed-off-by: cuneyt.ozdas <cuneyt.ozdas@autodesk.com> Co-authored-by: Doug Walker <doug.walker@autodesk.com>
…#2270) Signed-off-by: Eric Renaud-Houde <eric.renaud.houde@gmail.com>
Signed-off-by: Doug Walker <doug.walker@autodesk.com>
…oundation#2197) * For CPU processor, when source has no alpha make it default to 1. Signed-off-by: pylee <penne.y.lee@intel.com> * Fix alpha channel for integer types. Signed-off-by: pylee <penne.y.lee@intel.com> * Fix max alpha value to be from input bitdepth not output. Signed-off-by: pylee <penne.y.lee@intel.com> * Forgot to update ImagePacking.h Signed-off-by: pylee <penne.y.lee@intel.com> * Remove the unused inputBitDepth name causing compiler error. Signed-off-by: pylee <penne.y.lee@intel.com> * Update src/OpenColorIO/ImagePacking.cpp Co-authored-by: Cuneyt Ozdas <github@cuneytozdas.com> Signed-off-by: PenneLee <pennelee@gmail.com> --------- Signed-off-by: pylee <penne.y.lee@intel.com> Signed-off-by: PenneLee <pennelee@gmail.com> Co-authored-by: Cuneyt Ozdas <github@cuneytozdas.com> Co-authored-by: Doug Walker <doug.walker@autodesk.com>
* Add release signing workflow using Sigstore (AcademySoftwareFoundation#2229) This adds a GitHub Actions workflow that signs release artifacts using Sigstore, following the OpenSSF Best Practices Badge recommendations. The workflow is triggered on release publication and: 1. Creates a .tar.gz archive of the source tree 2. Signs the archive using sigstore/gh-action-sigstore-python 3. Uploads both the tarball and .sigstore.json credential bundle Based on the OpenEXR release-sign.yml workflow template. Closes AcademySoftwareFoundation#2034 Signed-off-by: pmady <pavan4devops@gmail.com> Co-authored-by: Doug Walker <doug.walker@autodesk.com> Signed-off-by: pmady <pavan4devops@gmail.com> * gpu: Add Vulkan unit test framework Add initial Vulkan support for GPU unit testing in OpenColorIO. This commit introduces: - vulkanapp.h/cpp: Headless Vulkan rendering framework for GPU tests - CMakeLists.txt updates: Conditional Vulkan build support with OCIO_VULKAN_ENABLED - GPUUnitTest.cpp: --vulkan flag to run tests with Vulkan renderer The Vulkan implementation uses compute shaders for color processing, similar to the existing OpenGL and Metal implementations. It supports headless rendering suitable for CI environments. Note: GLSL to SPIR-V compilation requires linking against glslang or shaderc library (marked as TODO in the implementation). Issue Number: close AcademySoftwareFoundation#2209 Signed-off-by: pmady <pavan4devops@gmail.com> * gpu: Implement GLSL to SPIR-V compilation using glslang Add glslang library dependency for runtime GLSL to SPIR-V compilation in the Vulkan unit test framework. This enables the Vulkan GPU tests to actually run by compiling OCIO-generated GLSL shaders to SPIR-V. Changes: - CMakeLists.txt: Add find_package(glslang) and link glslang libraries - vulkanapp.cpp: Implement compileGLSLToSPIRV() using glslang API The implementation: - Initializes glslang process (thread-safe, one-time init) - Configures Vulkan 1.2 / SPIR-V 1.5 target environment - Parses GLSL compute shader source - Links shader program - Generates optimized SPIR-V bytecode Signed-off-by: pmady <pavan4devops@gmail.com> * docs: Add comprehensive Vulkan testing guides for PR AcademySoftwareFoundation#2243 Add detailed testing documentation to help reviewers and contributors test the Vulkan unit test framework locally. Files added: - VULKAN_TESTING_GUIDE.md: Comprehensive guide with installation instructions for macOS, Linux, and Windows, build configuration, troubleshooting, and platform-specific notes - QUICK_TEST_STEPS.md: Quick reference guide with fast-track installation and testing steps for each platform These guides address the request from @doug-walker to provide instructions for installing Vulkan SDK and glslang dependencies needed to test the Vulkan branch locally. Signed-off-by: pmady <pavan4devops@gmail.com> * Remove testing guide files - will provide as PR comment instead Signed-off-by: pmady <pavan4devops@gmail.com> * fix: Change Vulkan CMake definitions from PRIVATE to PUBLIC Address feedback from @doug-walker regarding build issues: - Change target_include_directories from PRIVATE to PUBLIC - Change target_link_libraries from PRIVATE to PUBLIC - Change target_compile_definitions from PRIVATE to PUBLIC This allows dependent targets (like test_gpu_exec) to properly access the OCIO_VULKAN_ENABLED definition and Vulkan libraries. Signed-off-by: pmady <pavan4devops@gmail.com> * fix: Add MoltenVK portability extension for macOS Add VK_KHR_PORTABILITY_ENUMERATION extension and flag for macOS to enable Vulkan instance creation with MoltenVK. Signed-off-by: pmady <pavan4devops@gmail.com> * feat: Integrate Vulkan test framework into GPU unit tests Complete Vulkan test integration for OpenColorIO GPU unit tests: - Add Vulkan-specific helper functions in GPUUnitTest.cpp: - AllocateImageTexture for VulkanApp - UpdateImageTexture for VulkanApp - UpdateOCIOVulkanState for VulkanApp - ValidateImageTexture for VulkanApp - Wire VulkanApp into test execution loop with proper branching - Fix VulkanApp initialization: - Add MoltenVK portability extension for macOS - Add bounds checking in compute shader - Fix cleanup order to destroy VulkanBuilder before device - Fix CMake: Change PRIVATE to PUBLIC for Vulkan definitions Test Results (macOS with MoltenVK): - 155 tests PASSED (all non-LUT operations) - 108 tests FAILED (LUT1D/LUT3D - require texture sampler support) The LUT tests fail because 3D texture sampler support is not yet implemented in VulkanBuilder. This is a known limitation that requires additional work to implement texture allocation and descriptor set updates for LUT textures. Signed-off-by: pmady <pavan4devops@gmail.com> * Add Vulkan uniform buffer and LUT texture support - Implement VulkanBuilder uniform buffer creation and update for dynamic parameters - Add 3D LUT texture allocation with RGBA format (RGB32F not supported on MoltenVK) - Add 1D/2D LUT texture allocation with proper format handling - Fix shader generation to use correct descriptor bindings for textures and uniforms - Add std140 layout qualifier to OCIO uniform blocks - Update descriptor set layout and pool sizes to include uniforms and textures - Call updateUniforms() before each dispatch for dynamic parameter updates Test results: 216/263 tests pass (82%) Remaining failures are complex uniform blocks with vec3 types that need additional std140 alignment handling. Signed-off-by: pmady <pavan4devops@gmail.com> * Fix Vulkan uniform buffer layout and 1D texture handling - Use OCIO's getUniformBufferSize() and m_bufferOffset for correct std140 layout - Write array data with 16-byte stride per element (std140 requirement) - Add std140 layout qualifier to uniform blocks in shader generation - Disable 1D textures for Vulkan (use 2D instead) for MoltenVK compatibility - Add better exception handling in GPU unit tests for debugging This fixes 108 additional Vulkan GPU tests, bringing the pass rate from 155/263 (59%) to 260/263 (98.9%). The 3 remaining failures are ACES2 precision-sensitive edge cases that may need Vulkan-specific tolerance adjustments. Signed-off-by: pmady <pavan4devops@gmail.com> * Use OCIO's getTextureShaderBindingIndex API for Vulkan texture bindings - Remove manual sampler declarations in buildShader(), use OCIO-generated ones - Configure shader descriptor with setDescriptorSetIndex(0, 2) for Vulkan to start texture bindings at 2 (after input/output storage buffers) - Use get3DTextureShaderBindingIndex() and getTextureShaderBindingIndex() for correct texture binding indices - Add GPU diagnostic output to verify MoltenVK uses actual GPU hardware This addresses review feedback from PR AcademySoftwareFoundation#2243 to use the new texture binding API added in OCIO 2.5.1 (PR AcademySoftwareFoundation#2226) instead of manually declaring samplers. Test results: 260/263 tests pass (98.9%) Remaining 3 failures are ACES2 precision-sensitive edge cases. GPU confirmed: Apple M2 Pro (Integrated GPU), not CPU emulation. Signed-off-by: pmady <pavan4devops@gmail.com> * Address PR review comments for Vulkan unit test framework - Fix switch warning by explicitly handling VK_PHYSICAL_DEVICE_TYPE_OTHER and VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM cases - Fix unused format parameter warning in transitionImageLayout - Move input/output buffers to high bindings (100, 101) to avoid conflicts with OCIO's uniform binding at 0, eliminating need to edit shader text - Refactor GPUUnitTest.cpp to share code between GL and Vulkan: - Extract PrepareInputValues helper for UpdateImageTexture - Extract ValidateResults and ValidateImageTextureImpl template for ValidateImageTexture - Preserve Mac ARM ifdef for NaN/Infinity test disabling in Vulkan path - Update texture binding start to 1 (was 2) since binding 0 is now used for OCIO uniforms Signed-off-by: pmady <pavan4devops@gmail.com> * Address PR review: use consecutive bindings and increase tolerances - Change input/output buffer bindings from 100/101 to 1/2 - Update setDescriptorSetIndex(0, 3) so textures start at binding 3 - Increase test tolerances as requested: - Test 39 (line 306): 3e-6f -> 3e-5f - Test 49 (line 659): 0.018f -> 0.019f - Test 51 (line 696): 0.03f -> 0.032f - Update comments to reflect the new binding strategy Signed-off-by: pmady <pavan4devops@gmail.com> --------- Signed-off-by: pmady <pavan4devops@gmail.com> Co-authored-by: Doug Walker <doug.walker@autodesk.com>
…ndation#2273) 1) Expat: 'MD' suffix is added on MSVC only, 'd' suffix is added on WIN32 2) ZLib: 'd' suffix is added only on MSVC Signed-off-by: Dmitry Kazakov <dimula73@gmail.com>
AcademySoftwareFoundation#2276) * Fix bug in hue curve python binding Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Pointer check improvement Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Dangling reference fix Signed-off-by: Doug Walker <doug.walker@autodesk.com> --------- Signed-off-by: Doug Walker <doug.walker@autodesk.com>
* Update Linux CI to VFX 2026 Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Implement TSC requests Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Add pypa action and improve Sonar stuff Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Update deploy site actions Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Remove more python 3.9 Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Update latest dependabot Signed-off-by: Doug Walker <doug.walker@autodesk.com> --------- Signed-off-by: Doug Walker <doug.walker@autodesk.com>
…areFoundation#2285) * Implement dependabot requests Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Revert Sphinx Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Update latest dependabot Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Add sphinx-press install Signed-off-by: Doug Walker <doug.walker@autodesk.com> * Remove outdated comment Signed-off-by: Doug Walker <doug.walker@autodesk.com> --------- Signed-off-by: Doug Walker <doug.walker@autodesk.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adding a CMake utility function to setup debugger environments so that the debugger can locate the run-time dependencies. This makes it possible to compile and launch the projects directly within visual studio for example.
Calling the above function in projects that need it.