Merged
Conversation
- Add missing virtual_buffer_size_ms fields to EncodeConfig::av1() - Add use_layered parameter to create_dpb_images call - Add upload_queue_family parameter to create_command_resources call - Add upload_queue field to UploadParams - Add upload_command_pool field to AV1Encoder struct - Add clear_input_image call during AV1 encoder initialization - Fix Drop impl to clean up upload_command_pool - Revert verify_all resolution change to match main branch (320x240)
Contributor
There was a problem hiding this comment.
Pull request overview
Adds AV1 encoding support to PixelForge (Vulkan Video), extending codec discovery/device creation to include AV1 and introducing a new AV1 encoder implementation alongside small refactors to shared encode utilities and examples/docs.
Changes:
- Add AV1 codec discovery, device extension enabling, and feature chaining in Vulkan device creation.
- Introduce a new
encoder::av1module (init/encode/api) and wire it into theEncoderenum plusEncodeConfig::av1. - Update docs/examples to mention and exercise AV1, and refactor shared H.264/H.265 encode submission helpers.
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
src/vulkan.rs |
Detect AV1 encode support + enable AV1 device extensions/features conditionally. |
src/lib.rs |
Update crate docs to include AV1 and add AV1 example reference/warning. |
src/image.rs |
Rework InputImage to be transfer-only staging image; add upload_yuv420_to. |
src/encoder/resources.rs |
Tighten DPB barrier masks/stages and factor out shared encode CB prep + submit/read helpers. |
src/encoder/mod.rs |
Add EncodeConfig::av1, add Encoder::AV1, and route encode/flush/idr calls. |
src/encoder/h264/encode.rs |
Use shared encode command buffer prep + submit/read helper. |
src/encoder/h265/encode.rs |
Use shared encode command buffer prep + submit/read helper; factor DPB post barrier. |
src/encoder/av1/mod.rs |
New AV1 encoder core type + resource tracking + tests. |
src/encoder/av1/init.rs |
New AV1 session setup, capabilities query, resource creation, session params. |
src/encoder/av1/encode.rs |
New AV1 per-frame encode recording/submission path. |
src/encoder/av1/api.rs |
New AV1 public API (encode/flush/request_idr) and sequence header retrieval. |
examples/verify_all.rs |
Add AV1 to verification matrix; adjust testdata naming + upload path. |
examples/query_capabilities.rs |
Add tracing init (RUST_LOG support). |
examples/encode_h264.rs |
Switch tracing init to EnvFilter-based configuration. |
examples/encode_h265.rs |
Switch tracing init to EnvFilter-based configuration. |
examples/encode_av1.rs |
New AV1 encoding example. |
README.md |
Document AV1 support and add AV1 example + warning. |
Cargo.toml |
Pin ash to a specific git rev with needed Vulkan AV1 bindings. |
Cargo.lock |
Update locked ash revision/version metadata accordingly. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 18 out of 19 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
c1846b1 to
d4895fc
Compare
d4895fc to
f1dbf7e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Continuation of #1
Thanks to @porkloin
This currently produces the following through the
verify_allexample: