Skip to content

Remove create pipeline cache control feature during replay#2620

Open
bartosz-muszarski-arm wants to merge 2 commits intoLunarG:devfrom
bartosz-muszarski-arm:pipeline-cache-control
Open

Remove create pipeline cache control feature during replay#2620
bartosz-muszarski-arm wants to merge 2 commits intoLunarG:devfrom
bartosz-muszarski-arm:pipeline-cache-control

Conversation

@bartosz-muszarski-arm
Copy link
Contributor

All pipeline types that support VK_EXT_pipeline_creation_cache_control can have VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag enabled in the creation call. This flag allows the driver to not create pipelines if the creation would require compilation. This feature is problematic for capture/replay - gfxreconstruct will currently remove such calls during capture and always return VK_PIPELINE_COMPILE_REQUIRED to the caller. This behavior results in corruptions in new UE based content. This commit attempts to fix that by allowing the feature on capture, but removing it during replay:

Capture:

  • change allow_pipeline_compile_required option to true by default This prevents capture layer from introducing any changes to the calls

Replay - on Create(Compute/Graphics/RayTracing)Pipeline:

  • If creation call returned VK_PIPELINE_COMPILE_REQUIRED originally (pipeline creation failed), skip it on replay
  • otherwise (pipeline creation succeeded) remove VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag if present

This ensures the driver creates exactly the same set of objects it did during capture - it no longer has an option to fail if compilation is required.

@bartosz-muszarski-arm bartosz-muszarski-arm requested a review from a team as a code owner January 21, 2026 20:26
@ci-tester-lunarg
Copy link
Collaborator

CI gfxreconstruct build queued with queue ID 629006.

@ci-tester-lunarg
Copy link
Collaborator

CI gfxreconstruct build # 8669 running.

@ci-tester-lunarg
Copy link
Collaborator

CI gfxreconstruct build # 8669 passed.

@fabian-lunarg fabian-lunarg self-assigned this Jan 22, 2026
@fabian-lunarg fabian-lunarg force-pushed the pipeline-cache-control branch from 0cd90c8 to c2b4dd3 Compare February 5, 2026 07:20
@ci-tester-lunarg
Copy link
Collaborator

CI gfxreconstruct build queued with queue ID 640698.

@ci-tester-lunarg
Copy link
Collaborator

CI gfxreconstruct build # 8806 running.

@ci-tester-lunarg
Copy link
Collaborator

CI gfxreconstruct build # 8806 passed.

bartosz-muszarski-arm and others added 2 commits February 5, 2026 09:09
All pipeline types that support VK_EXT_pipeline_creation_cache_control can have VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag enabled in the creation call. This flag allows the driver to not create pipelines if the creation would require compilation.
This feature is problematic for capture/replay - gfxreconstruct will currently remove such calls during capture and always return VK_PIPELINE_COMPILE_REQUIRED to the caller.
This behavior results in corruptions in new UE based content.
This commit attempts to fix that by allowing the feature on capture, but removing it during replay:

Capture:
* change allow_pipeline_compile_required option to true by default
This prevents capture layer from introducing any changes to the calls

Replay - on Create(Compute/Graphics/RayTracing)Pipeline:
* If creation call returned VK_PIPELINE_COMPILE_REQUIRED originally (pipeline creation failed), skip it on replay
* otherwise (pipeline creation succeeded) remove VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT flag if present

This ensures the driver creates exactly the same set of objects it did during capture - it no longer has an option to fail if compilation is required.

Change-Id: Ibaa901fc4f4f83ff5149680fc6e45564269beb9b
@fabian-lunarg fabian-lunarg force-pushed the pipeline-cache-control branch from c2b4dd3 to ad67f31 Compare February 5, 2026 08:09
@ci-tester-lunarg
Copy link
Collaborator

CI gfxreconstruct build queued with queue ID 640724.

@ci-tester-lunarg
Copy link
Collaborator

CI gfxreconstruct build # 8807 running.

@ci-tester-lunarg
Copy link
Collaborator

CI gfxreconstruct build # 8807 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.

3 participants