forge-pipeline-texture-compression

Loads pre-transcoded BC7/BC5 GPU textures from .ftex files via forge_scene_load_pipeline_texture().

Updated Mar 17, 2026
One-click install
npx skills add https://github.com/code-review-benchmark/coderabbit_prs2__forge-gpu__coderabbit__PR323__20260317 --skill forge-pipeline-texture-compression
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: forge-pipeline-texture-compression
Source: https://github.com/code-review-benchmark/coderabbit_prs2__forge-gpu__coderabbit__PR323__20260317/tree/main/.claude/skills/forge-pipeline-texture-compression
Command: npx skills add https://github.com/code-review-benchmark/coderabbit_prs2__forge-gpu__coderabbit__PR323__20260317 --skill forge-pipeline-texture-compression

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Load GPU block-compressed textures through forge_scene.h. The asset pipeline compresses textures at build time (basisu → KTX2 → .ftex), and forge_scene_load_pipeline_texture() uploads the pre-transcoded blocks directly to the GPU — no runtime transcoding or mip generation.

This approach eliminates the runtime cost and complexity of on-demand texture transcoding, ensures consistent texture formats across platforms, and simplifies asset pipelines for real-time rendering.

Core Features & Use Cases

  • Pre-transcodes textures to BC7/BC5 via a build-time pipeline (basisu → KTX2 → .ftex) and uploads to GPU with forge_scene_load_pipeline_texture().
  • Supports explicit format handling (BC7_SRGB, BC7_UNORM, BC5_UNORM) and D3D12 alignment requirements for safe transfers.
  • Use Case: Integrate into game engines to streamline asset pipelines, reduce runtime CPU/GPU work, and ensure predictable texture memory usage across Vulkan, D3D12, and Metal.

Quick Start

Load pre-transcoded textures using forge_scene_load_pipeline_texture() after running the compression steps in the asset pipeline.

Frequently Asked Questions about forge-pipeline-texture-compression

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I load pre-compressed GPU textures without runtime transcoding?

Pre-compress GPU textures at build time using basisu to KTX2 to .ftex, then upload the pre-transcoded blocks directly to the GPU via forge_scene_load_pipeline_texture(). This eliminates runtime transcoding and mip generation costs.

What is the basisu to KTX2 pipeline for build-time texture compression?

The build-time texture compression pipeline encodes textures from basisu to KTX2 and finally to .ftex format. This pre-transcoding step ensures consistent texture formats across platforms before GPU upload.

Does this build-time texture compression approach support D3D12 and Vulkan?

Yes, the pre-transcoded texture pipeline supports cross-API rendering pipelines including Vulkan, D3D12, and Metal. It handles explicit format requirements like D3D12 alignment for safe transfers.

What block compression formats are available for GPU textures in this pipeline?

The pipeline supports explicit format handling for BC7_SRGB, BC7_UNORM, and BC5_UNORM block-compressed textures. These formats are encoded at build time to ensure predictable texture memory usage.

Do I need basisu and KTX2 tools to pre-transcode textures for my game engine?

Yes, encoding requires basisu, KTX2, and the forge_texture_tool to generate the .ftex files. The engine then uses forge_scene_load_pipeline_texture() to upload these pre-transcoded blocks directly to the GPU.

Why eliminate on-demand texture transcoding during game runtime?

Eliminating on-demand texture transcoding removes runtime CPU and GPU work associated with decoding and mip generation. Build-time pre-transcoding ensures consistent texture delivery and predictable memory usage across platforms.