For the latest SDK details, consult the official "bink_lowlevel.h" header and search for "RegisterFrameBuffer8" – the "new" version is often hidden behind a feature flag requiring direct support from RAD support.
while (playing) BinkWait(my_bink_handle); // Wait for next frame // Bink writes directly to my_8bit_buffer, then calls callback // Render pass uses buffer + palette texture SubmitDraw(); bink register frame buffer8 new
– On mobile VR (Quest 3) or low-spec handhelds, 8-bit frame buffers + palette shading reduce memory bandwidth by 60% compared to YUV->RGB conversion. Conclusion The keyword "bink register frame buffer8 new" represents a specific, powerful tool for the engine programmer who refuses to lose control over their frame buffer pipeline. It transforms Bink from a black-box video player into a low-level memory writer that respects your cache lines, your GPU fences, and your need for deterministic rendering. For the latest SDK details, consult the official
void* my_8bit_buffer = vkAllocateMemory( ..., VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); BinkFrameBuffer8Desc desc = 0; desc.struct_size = sizeof(desc); desc.buffer_ptr = my_8bit_buffer; desc.stride = aligned_width; // Must match texture row pitch desc.frame_number_tag = current_frame_id; desc.sync_flags = BINK_SYNC_WRITE_BACK_CACHE; // Custom flag desc.sync_callback = OnBinkFrameReady; desc.user_data = my_gpu_fence_ptr; BinkRegisterFrameBuffer8New(my_bink_handle, &desc); Step 3: The Callback Inside OnBinkFrameReady , do not touch the buffer. Simply signal your rendering pipeline: It transforms Bink from a black-box video player
void OnBinkFrameReady(U32 tag, void* user) Fence* gpu_fence = (Fence*)user; gpu_fence->Signal(); // GPU can now read index buffer // Update your descriptor set to point to the new 8-bit buffer
BinkRegisterFrameBuffer8New or BinkRegisterFrameBuffer8Ex The new function introduces an extended parameter structure. Instead of a flat pointer, it accepts a BinkFrameBuffer8Desc struct:
– If you are porting a PS2/Xbox classic game to PC or Switch, the original assets are palletized 8-bit. The "new" register function gives you the performance of async decode without rewriting the asset pipeline.