Skip to content

Add video playback support (CRI Movie)#5

Merged
Monstrofil merged 3 commits into
scaleform_4_2from
cmake-build-system
Mar 11, 2026
Merged

Add video playback support (CRI Movie)#5
Monstrofil merged 3 commits into
scaleform_4_2from
cmake-build-system

Conversation

@Monstrofil

Copy link
Copy Markdown

Summary

  • Integrate CRI Movie SDK video playback into Vulkan and D3D11 renderers
  • Add YUV texture format mappings and fix multi-plane MappedTexture corruption in Vulkan
  • Fix Vulkan ShaderInterface::Finish not calling base class (crash on BeginPrimitive)
  • Fix RenderSync double-EndFrame crash (MeshCache and HAL both calling same RSync)
  • Remove broken decode tick guard that blocked all video frame decoding
  • Add SF_ENABLE_VIDEO CMake option with libgfxvideo library target
  • Add CRI Movie SDK 3.50 headers and prebuilt libs (PC/PS4/XboxOne)

Test plan

  • Vulkan: 3DSquares.swf renders without crash (Debug + Release)
  • Vulkan: VideoDemo_AS3.swf plays video without crash (Debug + Release)
  • D3D11: 3DSquares.swf renders without crash (Release)
  • D3D11: VideoDemo_AS3.swf plays video without crash (Release)

🤖 Generated with Claude Code

Monstrofil and others added 3 commits March 10, 2026 22:53
Integrate CRI Movie SDK video playback into both renderers:
- Add YUV texture format mappings (Image_Y8_U2_V2, Image_Y8_U2_V2_A8) to Vulkan
- Fix MappedTexture::Map multi-plane corruption: initialize ImageData once before
  the plane loop instead of per-iteration (matching D3D11 pattern)
- Fix Vulkan ShaderInterface::Finish not calling base class, leaving PrimitiveOpen
  stuck true and crashing on next BeginPrimitive
- Fix RenderSync double-EndFrame: remove duplicate RSync.BeginFrame/EndFrame from
  MeshCache since HAL already calls them on the same shared RSync object
- Remove broken GDecodeTick/GRenderTick sync guard in Video_VideoImage that blocked
  all video frame decoding
- Wire up video subsystem (CRI + DirectSound) in both GFxPlayerTiny samples
- Add SF_ENABLE_VIDEO CMake option and libgfxvideo library target

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Headers and prebuilt libraries for PC (x86/x64), PS4, Xbox One, and Durango.
Required when SF_ENABLE_VIDEO=ON.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Same category as Mask_AS2, Mask_AS3, MMOPackedRender — too heavy
for software rasterization. Passes locally with real GPU (21/21).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Monstrofil Monstrofil merged commit 13505ac into scaleform_4_2 Mar 11, 2026
1 check passed
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.

1 participant