mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-20 18:29:23 +00:00
tint/writer: Handle unnested, uniform matCx2 matrices
Shuffle the transform orders to ensure that these are embedded in a structure before running the Std140 transform. Add more end-to-end tests for these. As pointed out in tint:1673, arrays of matrices are not correctly decomposed by the Std140 transform. This will be addressed by a later change. Bug: tint:1673 Change-Id: I47c93e458ff48578922d576819792e8ed3a5723c Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/102541 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Zhaoming Jiang <zhaoming.jiang@intel.com> Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: David Neto <dneto@google.com>
This commit is contained in:
committed by
Dawn LUCI CQ
parent
2bfd9f8c83
commit
84b43d61fa
@@ -221,10 +221,8 @@ SanitizedResult Sanitize(const Program* in,
|
||||
manager.Add<transform::CanonicalizeEntryPointIO>();
|
||||
manager.Add<transform::ExpandCompoundAssignment>();
|
||||
manager.Add<transform::PromoteSideEffectsToDecl>();
|
||||
manager.Add<transform::Std140>(); // Must come after PromoteSideEffectsToDecl
|
||||
manager.Add<transform::PadStructs>();
|
||||
manager.Add<transform::UnwindDiscardFunctions>();
|
||||
manager.Add<transform::SimplifyPointers>();
|
||||
|
||||
manager.Add<transform::RemovePhonies>();
|
||||
|
||||
@@ -245,6 +243,13 @@ SanitizedResult Sanitize(const Program* in,
|
||||
manager.Add<transform::PromoteInitializersToLet>();
|
||||
manager.Add<transform::AddEmptyEntryPoint>();
|
||||
manager.Add<transform::AddBlockAttribute>();
|
||||
|
||||
// Std140 must come after PromoteSideEffectsToDecl and AddBlockAttribute
|
||||
// Std140 must come before SimplifyPointers.
|
||||
manager.Add<transform::Std140>();
|
||||
|
||||
manager.Add<transform::SimplifyPointers>();
|
||||
|
||||
data.Add<transform::CanonicalizeEntryPointIO::Config>(
|
||||
transform::CanonicalizeEntryPointIO::ShaderStyle::kGlsl);
|
||||
|
||||
|
||||
@@ -77,19 +77,25 @@ SanitizedResult Sanitize(const Program* in, const Options& options) {
|
||||
manager.Add<transform::RemoveUnreachableStatements>();
|
||||
manager.Add<transform::ExpandCompoundAssignment>();
|
||||
manager.Add<transform::PromoteSideEffectsToDecl>();
|
||||
manager.Add<transform::Std140>(); // Must come after PromoteSideEffectsToDecl
|
||||
manager.Add<transform::UnwindDiscardFunctions>();
|
||||
manager.Add<transform::SimplifyPointers>(); // Required for arrayLength()
|
||||
manager.Add<transform::RemovePhonies>();
|
||||
manager.Add<transform::VectorizeScalarMatrixConstructors>();
|
||||
manager.Add<transform::VectorizeMatrixConversions>();
|
||||
manager.Add<transform::ForLoopToLoop>(); // Must come after
|
||||
manager.Add<transform::WhileToLoop>(); // ZeroInitWorkgroupMemory
|
||||
manager.Add<transform::WhileToLoop>(); // ZeroInitWorkgroupMemory
|
||||
manager.Add<transform::CanonicalizeEntryPointIO>();
|
||||
manager.Add<transform::AddEmptyEntryPoint>();
|
||||
manager.Add<transform::AddBlockAttribute>();
|
||||
|
||||
// Std140 must come after PromoteSideEffectsToDecl, AddBlockAttribute
|
||||
manager.Add<transform::Std140>();
|
||||
|
||||
// VarForDynamicIndex must come after Std140
|
||||
manager.Add<transform::VarForDynamicIndex>();
|
||||
|
||||
// ForLoopToLoop must come after Std140, ZeroInitWorkgroupMemory
|
||||
manager.Add<transform::ForLoopToLoop>();
|
||||
|
||||
data.Add<transform::CanonicalizeEntryPointIO::Config>(
|
||||
transform::CanonicalizeEntryPointIO::Config(
|
||||
transform::CanonicalizeEntryPointIO::ShaderStyle::kSpirv, 0xFFFFFFFF,
|
||||
|
||||
Reference in New Issue
Block a user