Commit Graph

43 Commits

Author SHA1 Message Date
c14d4d5ac9 test(gui): add unit test for handling missing fields in GUI script service 2026-01-08 03:40:04 +00:00
dcec8f39a0 Revert "stuff"
This reverts commit 8dd30db30d.
2026-01-08 03:20:44 +00:00
8dd30db30d stuff 2026-01-08 03:06:30 +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
de8ad12a7b refactor(tests): simplify bgfx frame requirement tests by removing direct stats checks 2026-01-08 00:25:53 +00:00
66fbbcf11a feat(tests): add TDD tests for bgfx initialization order and frame requirements 2026-01-08 00:11:41 +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
add8182659 feat(tests): add integration tests for MaterialX shader generator and validation 2026-01-07 23:35:46 +00:00
a44f05d9e5 feat(tests): add shader pipeline validator tests with GTest integration 2026-01-07 23:16:58 +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
2eb7d632dd feat(tests): Update GPU render test expectations and remove skybox references 2026-01-07 20:24:53 +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
2cbd4c232f feat(shader): Integrate local shader compilation with bgfx_tools and add PipelineCompilerService 2026-01-07 18:38:01 +00:00
e2d6e1b4ad feat(tests): Add Vulkan shader linking test for GUI shader compilation and rendering validation 2026-01-07 16:36:33 +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
4a96bec1b7 feat(tests): Enhance rendering tests to validate uniform initialization and stability 2026-01-07 15:38:40 +00:00
172543fc88 feat(cube_logic): Fix string formatting for object_type in create_spinning_cube function 2026-01-07 15:20:15 +00:00
d2d3af5679 feat(tests): Update RunCubeDemoSceneTests to use object type for differentiation 2026-01-07 15:08:07 +00:00
5b7db19437 feat(tests): Refactor GPU render test to use object type for differentiation 2026-01-07 15:07:58 +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
78c47c4429 feat(tests): Update cube demo scene tests for new tessellated floor and ceiling geometry 2026-01-07 14:50:27 +00:00
d4921be5ef feat(tests): Add SDL window service and ECS service to GPU render test for enhanced validation 2026-01-07 14:41:46 +00:00
c01213962c feat(tests): Enhance CubeDemoConfigService and GPU smoke test with improved error handling and dynamic renderer selection 2026-01-07 14:25:46 +00:00
a2f49bdb3a feat(tests): Enhance GPU smoke test with dynamic video driver selection and improved error reporting 2026-01-07 13:57:21 +00:00
d60d4b315d feat(tests): Enhance script engine tests with additional service implementations and GPU smoke test 2026-01-07 13:47:52 +00:00
0f99291157 feat(tests): Add CubeDemoConfigService and related stubs for testing cube demo scene 2026-01-07 13:35:52 +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
23e22c63c0 feat(tests): Add bgfx_gui_service_tests and integrate with CMake and dev commands 2026-01-07 13:01:26 +00:00
22f9a98ee1 feat(shader): Update shader handling to support multiple shader keys across various components 2026-01-07 12:27:20 +00:00
a5b47479d7 Refactor graphics service architecture and remove Vulkan-specific components
- Deleted VulkanGuiService and associated interfaces to streamline GUI rendering.
- Removed RenderGraphConfig and GraphicsBackendConfig, replacing them with BgfxConfig.
- Eliminated unused render graph structures and interfaces to simplify codebase.
- Updated IConfigService and IGraphicsBackend interfaces to reflect new configurations.
- Removed Vulkan device and buffer service interfaces to reduce complexity.
- Enhanced error handling and validation across Vulkan initialization and resource management.
- Updated unit tests to remove references to the obsolete render graph functionality.
2026-01-06 15:08:20 +00:00
5e18571856 feat: Enhance GUI rendering and configuration management
- Added support for FreeType font rendering in GuiRenderer, including glyph loading and text rendering capabilities.
- Introduced GuiFontConfig structure to manage font settings through configuration.
- Updated JsonConfigService to parse and provide GUI font settings from JSON configuration.
- Implemented MaterialX shader generation capabilities with a new MaterialXShaderGenerator class.
- Enhanced ShaderScriptService to utilize MaterialX for shader generation based on configuration.
- Added NullGuiService as a placeholder implementation for GUI service.
- Extended IConfigService interface to include methods for retrieving graphics backend, MaterialX, and GUI font configurations.
- Updated RuntimeConfig structure to include graphics backend and MaterialX configurations.
- Added tests to ensure proper integration of new configuration settings and shader generation functionality.
2026-01-06 14:38:42 +00:00
01f1e94994 feat(render-graph): Implement Lua-based render graph system
- Added render graph configuration to JSON files and runtime settings.
- Introduced RenderGraphScriptService to load and manage render graph definitions from Lua.
- Updated GraphicsService to handle render graph definitions.
- Enhanced cube_logic.lua with a sample render graph function.
- Modified various services and interfaces to support render graph functionality.
- Improved logging for render graph operations and configurations.
2026-01-06 00:14:00 +00:00
d7d4411251 feat: Refactor shader handling by implementing inline shader sources and enhancing error handling 2026-01-05 23:44:00 +00:00
945b724838 Refactor shader management and remove unused shaders
- Introduced a shader toolkit for dynamic shader generation in soundboard.lua.
- Removed obsolete shader files: ceiling.frag, cube.frag, cube.vert, floor.frag, pbr.frag, pbr.vert, solid.frag, solid.vert, wall.frag.
- Updated pipeline_service to handle inline shader sources and paths, improving shader registration and validation.
- Enhanced shader_script_service to support optional shader source paths alongside traditional paths.
- Modified ShaderPaths structure to include source fields for vertex, fragment, geometry, tessellation control, tessellation evaluation, and compute shaders.
- Updated test_gxm_backend to reflect changes in shader paths and ensure successful pipeline creation.
2026-01-05 23:34:48 +00:00
3299388857 feat: Implement shader byte loading and caching in GuiRenderer and PipelineService 2026-01-05 22:38:55 +00:00
c910ec5dcf Implement Vulkan Graphics Backend and Interfaces
- Added VulkanGraphicsBackend class for Vulkan rendering implementation.
- Created IGraphicsBackend interface for abstracted rendering operations.
- Introduced GraphicsConfig structure for graphics service configuration.
- Updated graphics_types.hpp with new configuration options.
- Implemented Vulkan backend initialization, device management, and rendering methods.
- Added tests for GXM Graphics Backend to validate functionality.
- Refactored existing graphics service interface to support backend-agnostic design.
2026-01-05 19:00:35 +00:00
19c369aac1 Refactor script services to improve Lua integration and logging
- Updated MeshService to use MeshPayload directly instead of script::MeshPayload.
- Enhanced SceneScriptService with detailed logging and error handling for Lua interactions.
- Introduced ILogger dependency in SceneScriptService and ShaderScriptService for better traceability.
- Implemented Lua state management in ScriptEngineService, allowing direct access to Lua functions.
- Added new types for mesh and scene management, including MeshPayload and SceneObject.
- Refactored shader loading logic in ShaderScriptService to utilize Lua for shader path retrieval.
- Created GuiInputSnapshot and GuiCommand structures for GUI input handling.
- Updated input and GUI script services to use new types and improved interfaces.
- Enhanced test_cube_script to validate new service implementations and Lua interactions.
2026-01-04 23:46:46 +00:00
5a4dd23df2 Implement PhysicsBridge and ScriptEngine for enhanced physics and scripting capabilities
- Added PhysicsBridge class to manage physics interactions using Bullet Physics.
- Introduced ScriptEngine class to handle Lua scripting, including loading scene objects and managing audio commands.
- Updated test_cube_script to utilize ScriptEngine instead of CubeScript, ensuring compatibility with new architecture.
- Implemented methods for loading meshes, creating physics objects, and handling audio playback within the ScriptEngine.
- Enhanced error handling and input management for Lua scripts.
2026-01-03 23:44:01 +00:00
3a4fc2ea8b Enhance validation and error handling across the application
- Implement early Vulkan validation to check availability and version.
- Add comprehensive GPU detection and selection feedback.
- Validate swap chain support and window dimensions before creation.
- Introduce buffer size validation and memory checks during buffer creation.
- Improve error messages with actionable troubleshooting steps.
- Create scripts for rebuilding and testing the application with validation improvements.
2026-01-03 22:56:37 +00:00
Richard Ward
1505415337 test stuff 2025-12-18 19:30:38 +00:00