Add a compositing example app#7646
Conversation
|
Lots of legit-looking compile errors |
…alide into abadams/compositing_app
| static constexpr int num_blend_modes = 5; | ||
|
|
||
| public: | ||
| Input<Buffer<uint8_t, 3>[num_layers]> layer_rgba { "layer_rgba" }; |
There was a problem hiding this comment.
Comments describing these arguments might be useful.
|
Might make sense to add one liners to the PR description for the change to RegionCosts and the Mullapudi autoscheduler. (In case someone is looking for info to track down a change in behavior in the future.) |
|
C:\build_bot\worker\halide-testbranch-main-llvm17-x86-64-windows-cmake\halide-source\apps\compositing\process.cpp(37): error C2065: 'M_PI': undeclared identifier EDIT: I took the liberty of pushing a fix |
steven-johnson
left a comment
There was a problem hiding this comment.
LGTM pending green, but I'd kinda prefer that the changes to Halide proper get landed separately from the app, for future maintenance reasons -- and do any of those changes need tests?
…alide into abadams/compositing_app
| @@ -1,4 +1,5 @@ | |||
| #include <chrono> | |||
| #include <cmath> | |||
There was a problem hiding this comment.
Still won't work: https://stackoverflow.com/questions/6563810/m-pi-works-with-math-h-but-not-with-cmath-in-visual-studio
(╯°□°)╯︵ ┻━┻
|
Failures unrelated. It looks like vulkan is frequently failing to allocate device memory. |
Tagging @derek-gerstmann |
* Initial version of a compositing demo app * Improve schedule; add GPU version * Better mux codegen * Consider all definition exprs in mullapudi autoscheduler * Add Tuple mux to IROperator * clang-format, better comments * Remove pointless blank line * Add some fixed-point intrinsics to RegionCosts.cpp to suppress warnings * Add perf numbers * Hopefully fix cmake build * clang-format * clang-format * Fix muxing FuncRefs * More comments * Update process.cpp * Include cmath to hopefully get M_PI * Revert inclusion of cmath --------- Co-authored-by: Steven Johnson <srj@google.com>
This PR adds a new app that does Porter-Duff compositing with a handful of operators. The purpose of the app is to demonstrate two things:
It also makes two changes to the Mullapudi autoscheduler. It silences a warning about some fixed point intrinsics, and it fixes a bug where the autoscheduler was not considering all Exprs associated with a Func, just the RHS, which was making it miss the ops input buffer, which is only ever referenced in an RDom predicate.