276 Commits

Author SHA1 Message Date
757f3946c0 feat(logger): enhance file descriptor management for logging service 2026-01-08 02:07:37 +00:00
262c100e2f stuff 2026-01-08 01:50:49 +00:00
0417fbf5ba feat(tests): add unit tests for render coordinator initialization order 2026-01-08 00:33:17 +00:00
ea6cbcc90e Enhance texture loading and resource management in BgfxGraphicsBackend
- Implement texture memory budget tracking to prevent GPU memory exhaustion.
- Add validation for texture dimensions against GPU capabilities before loading.
- Introduce checks for memory budget before texture allocation.
- Validate the success of bgfx::copy() during texture loading.
- Improve error handling and logging for texture creation failures.
- Ensure proper cleanup of texture memory during pipeline destruction.
- Add comprehensive unit tests for initialization order, texture loading, and resource management.
- Document potential issues in LoadTextureFromFile and shader compilation processes.
2026-01-08 00:03:21 +00:00
501e95da5a fix(shader): enhance regex patterns and improve comment handling in shader validation 2026-01-07 23:18:46 +00:00
7968456f4f feat(mesh): add tangents to MeshPayload and compute during payload building
- Updated MeshPayload structure to include tangents.
- Modified BuildPayloadFromBspBuffer to compute tangents based on vertex normals.
- Enhanced AppendMeshPayload to handle tangents, either from mesh data or generated.
- Updated PushMeshToLua to expose tangents to Lua.
- Adjusted ReadVertexArray to read tangents from Lua.

feat(shader): implement ShaderPipelineValidator for shader validation

- Added ShaderPipelineValidator class to validate shader inputs/outputs and vertex layouts.
- Implemented methods to extract shader attributes and validate against vertex layouts.
- Added comprehensive validation checks for shader pipelines, including SPIR-V requirements.
- Created a logger interface for validation results.

test(shader): add unit tests for ShaderPipelineValidator

- Implemented extensive unit tests for shader validation, covering various scenarios.
- Tests include extraction of shader inputs/outputs, validation of vertex layout matches, stride checks, and interface matching.
- Added edge case tests for empty shaders and comments in GLSL code.
2026-01-07 23:12:45 +00:00
a04fed45cf feat(shader): Add attribute aliasing for improved attribute mapping in shaderc_spirv 2026-01-07 22:14:42 +00:00
973dfcf9ea fix(shader): Update integer uniform mapping to Vec4 and add verbose logging for better debugging 2026-01-07 22:04:26 +00:00
e8b48bf7dc stuff 2026-01-07 21:59:22 +00:00
2583643fb8 feat(shader): Enhance shader binary parsing and logging functionality 2026-01-07 21:39:18 +00:00
a0673e6791 stuff 2026-01-07 21:13:29 +00:00
6bd83a9b4e feat(shader): Enhance shader validation and refactor uniform handling in BgfxGuiService 2026-01-07 21:08:53 +00:00
08d06dbe60 feat(shader): Refactor shader compilation process to use BgfxShaderCompiler and streamline error handling 2026-01-07 20:17:56 +00:00
99e35573d2 Add TINYSTL string_view, traits, unordered_map, unordered_set, and vector implementations
- Introduced string_view class for non-owning string references.
- Added traits header for type traits and utility functions.
- Implemented unordered_map class for hash table based key-value storage.
- Created unordered_set class for hash table based unique key storage.
- Developed vector class for dynamic array functionality with various utility methods.
2026-01-07 19:54:17 +00:00
ce5db15e6b feat(shader): Enhance shader compilation with in-process support for multiple targets and integrate PipelineCompilerService 2026-01-07 19:45:48 +00:00
700d18e0b6 feat(shader): Update Vulkan shader handling with uniform blocks and improved compilation process 2026-01-07 18:59:52 +00:00
8955c51f20 bgfx 2026-01-07 18:49:55 +00:00
2cbd4c232f feat(shader): Integrate local shader compilation with bgfx_tools and add PipelineCompilerService 2026-01-07 18:38:01 +00:00
cb0a420242 feat(shader): Integrate bgfx_tools for shader compilation and add PipelineCompilerService 2026-01-07 17:53:30 +00:00
8362200def Add PSSL and SPIR-V shader compilation support
- Implemented `compilePSSLShader` function in `shaderc_pssl.cpp` to handle PSSL shader compilation, currently returning an unsupported message.
- Introduced `shaderc_spirv.cpp` with comprehensive SPIR-V shader compilation logic, including GLSL to SPIR-V translation, reflection, and uniform handling.
- Added necessary includes and defined resource limits for SPIR-V compilation.
- Established texture format mappings and attribute enumerations for shader inputs.
- Enhanced error handling and logging for shader compilation processes.
2026-01-07 17:11:45 +00:00
c39eeb1f29 Add vertex shader for texture cube and improve shader handling
- Introduced a new vertex shader for texture cube rendering in `vs_texture_cube.sc`.
- Enabled debugging for shader validation in the graphics backend initialization.
- Refactored GUI shaders to use a structured output for vertex data, improving clarity and maintainability.
- Updated shader compiler to disable automatic uniform binding, allowing for explicit binding in shaders.
- Simplified shader binary wrapping by removing unnecessary uniform and attribute metadata embedding, leveraging bgfx's reflection capabilities.
2026-01-07 17:11:03 +00:00
b4a5588054 feat(logging): Enhance logging in shader compilation and program creation for better traceability 2026-01-07 16:24:14 +00:00
bff4954185 feat(shader_compiler): Add BgfxShaderCompiler for GLSL to SPIRV compilation and uniform metadata handling
refactor(bgfx_gui_service): Integrate BgfxShaderCompiler for shader creation and validation
test(bgfx_gui_service): Enhance tests to validate shader key presence and uniform initialization
2026-01-07 16:17:09 +00:00
b07cf40b8d feat(bgfx_gui_service): Add support for MaterialX shaders with separate uniform handling 2026-01-07 15:44:53 +00:00
71c25e7ddb feat(tests): Enhance cube demo scene tests with improved object type differentiation and scale extraction 2026-01-07 15:06:00 +00:00
d71bc24681 feat(gui): Integrate MaterialX shader generation into bgfx_gui_service and enhance tests 2026-01-07 13:21:03 +00:00
25bd2fdca5 feat(tests): Add stub config service and enhance bgfx_gui_service tests 2026-01-07 13:07:30 +00:00
58e54bc2df fix(gui): Remove explicit binding from uniform declarations and enhance logging in CreateProgram 2026-01-07 12:52:36 +00:00
498cc56b34 feat(materialx): Refactor MaterialX shader handling to improve configuration and error handling 2026-01-07 12:47:04 +00:00
22f9a98ee1 feat(shader): Update shader handling to support multiple shader keys across various components 2026-01-07 12:27:20 +00:00
fbacb18f2e refactor(graphics): Remove explicit fallback shader support from RenderScene method 2026-01-07 12:00:52 +00:00
c7dc2c7829 feat(shader): Enhance shader attribute location handling and add logging for conflicts in MaterialX shader generation 2026-01-07 11:59:16 +00:00
d7ac5db449 fix(shader): Update logger usage in ConvertIndividualInputsToBlock for consistency 2026-01-07 10:53:28 +00:00
01fe566260 feat(shader): Remap vertex attribute locations in MaterialX shader generation for bgfx compatibility 2026-01-07 10:51:02 +00:00
489671c544 fix(shader): Prevent automatic location mapping in shader creation to maintain explicit layout consistency 2026-01-07 10:38:41 +00:00
36d8a40fcc feat(shader): Enhance shader creation for OpenGL and Vulkan by adding SPIRV wrapping and improved error logging 2026-01-07 10:27:51 +00:00
172aa1a551 Refactor shader handling: Remove Lua shader variant script and update shader path loading
- Deleted the shader_variants.lua script, which contained functions for building shader parameter overrides and shader variants.
- Updated ShaderScriptService to remove Lua integration for shader path loading, now relying solely on MaterialX configuration.
- Simplified logging and error handling in shader path loading, ensuring clarity in the absence of shader variants.
2026-01-07 01:56:06 +00:00
fb811f4460 feat: Add MaterialX support and enhance time retrieval in scripting 2026-01-07 01:38:03 +00:00
c0c1fb881e feat: Enhance physics integration and scripting capabilities
- Added support for triangle mesh rigid bodies in the physics bridge service.
- Implemented methods to create static meshes and retrieve linear velocities in the script engine service.
- Introduced new Lua bindings for physics operations, including `physics_create_static_mesh` and `physics_get_linear_velocity`.
- Improved shader creation in the graphics backend with auto-bind uniform options and error handling.
- Refactored shader generation to consolidate output and input declarations into structured blocks.
- Enhanced GUI service with better resource logging and error handling.
- Added utility functions for transforming points using matrices.
2026-01-07 01:08:26 +00:00
f5753298be feat(bgfx_gui_service): Add model view projection uniform and enhance logging in GUI service 2026-01-07 00:47:59 +00:00
7488713616 feat(bgfx): Simplify sampler flags and improve logging in graphics backend 2026-01-07 00:31:33 +00:00
cb5b58ca9e feat(physics): Enhance physics bridge service with new functionalities
- Added SetGravity method to adjust the gravity in the physics world.
- Introduced AddSphereRigidBody method for creating sphere rigid bodies.
- Implemented RemoveRigidBody method to delete existing rigid bodies.
- Added SetRigidBodyTransform method to update the position and rotation of rigid bodies.
- Included ApplyForce and ApplyImpulse methods for applying forces and impulses to rigid bodies.
- Added SetLinearVelocity method to set the linear velocity of rigid bodies.
- Enhanced StepSimulation method to accept a maxSubSteps parameter.
- Implemented GetBodyCount method to retrieve the number of rigid bodies in the world.
- Added Clear method to remove all rigid bodies from the physics world.
- Updated the script engine service to bind new physics methods to Lua.
- Enhanced material configuration handling in shader script service.
- Introduced MaterialXMaterialConfig structure for better material management.
- Added texture binding support in ShaderPaths structure.
- Included stb_image implementation for image loading support.
2026-01-07 00:20:19 +00:00
ffeba6c142 feat(mesh_service): Implement archive handling and fallback for BSP loading 2026-01-06 23:26:47 +00:00
b1ccf2ca36 feat(bgfx): Enhance platform data handling and add initialization logging 2026-01-06 22:44:27 +00:00
31daceb78c feat(platform_service): Update LogSystemInfo to use SDL_GetNumLogicalCPUCores and add logging 2026-01-06 22:11:58 +00:00
2ef604c32e Add platform service enhancements and logging capabilities
- Introduced IPlatformService interface with methods for retrieving platform information, current video driver, and available video/render drivers.
- Implemented PlatformService to gather and log detailed system information, including CPU capabilities, environment variables, and SDL video driver support.
- Updated BgfxGraphicsBackend to utilize IPlatformService for platform-specific data.
- Enhanced SdlWindowService to log system information upon window creation.
- Added utility functions for string formatting and feature value retrieval.
2026-01-06 21:53:52 +00:00
70e02704b3 feat(materialx): Add fallback handling for token substitutions in shader generation 2026-01-06 20:56:07 +00:00
828841e673 fix(materialx): Correct package name casing and simplify token substitution handling 2026-01-06 20:34:12 +00:00
d2fb15c76f feat(materialx): Add fallback handling for token substitutions in shader generation 2026-01-06 19:54:55 +00:00
9ab929f53d feat(materialx): Add function to resolve Airy Fresnel iterations with improved logging 2026-01-06 19:44:30 +00:00