mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-16 16:37:08 +00:00
Implement texture_depth_multisampled_2d
Implemented for all readers and writers. Cleaned up some verbose code in sem::Function and the Inspector in the process. Fixed: tint:1032 Change-Id: Ia6f2f59e6d2e511c89160b97be990e8b7c9828d9 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59664 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: David Neto <dneto@google.com> Reviewed-by: James Price <jrprice@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Auto-Submit: Ben Clayton <bclayton@google.com>
This commit is contained in:
committed by
Tint LUCI CQ
parent
d12379a405
commit
fd35aa8e47
@@ -1867,6 +1867,7 @@ const char* expected_texture_overload(
|
||||
case ValidTextureOverload::kDimensionsDepth2dArray:
|
||||
case ValidTextureOverload::kDimensionsDepthCube:
|
||||
case ValidTextureOverload::kDimensionsDepthCubeArray:
|
||||
case ValidTextureOverload::kDimensionsDepthMultisampled2d:
|
||||
case ValidTextureOverload::kDimensionsStorageRO1d:
|
||||
case ValidTextureOverload::kDimensionsStorageRO2d:
|
||||
case ValidTextureOverload::kDimensionsStorageRO2dArray:
|
||||
@@ -1892,6 +1893,7 @@ const char* expected_texture_overload(
|
||||
case ValidTextureOverload::kNumLevelsDepthCube:
|
||||
case ValidTextureOverload::kNumLevelsDepthCubeArray:
|
||||
return R"(textureNumLevels(texture))";
|
||||
case ValidTextureOverload::kNumSamplesDepthMultisampled2d:
|
||||
case ValidTextureOverload::kNumSamplesMultisampled2d:
|
||||
return R"(textureNumSamples(texture))";
|
||||
case ValidTextureOverload::kDimensions2dLevel:
|
||||
@@ -2019,41 +2021,29 @@ const char* expected_texture_overload(
|
||||
case ValidTextureOverload::kSampleCompareLevelDepthCubeArrayF32:
|
||||
return R"(textureSampleCompare(texture, sampler, coords, array_index, depth_ref))";
|
||||
case ValidTextureOverload::kLoad1dLevelF32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoad1dLevelU32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoad1dLevelI32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoad2dLevelF32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoad2dLevelU32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoad2dLevelI32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoad2dArrayLevelF32:
|
||||
return R"(textureLoad(texture, coords, array_index, level))";
|
||||
case ValidTextureOverload::kLoad2dArrayLevelU32:
|
||||
return R"(textureLoad(texture, coords, array_index, level))";
|
||||
case ValidTextureOverload::kLoad2dArrayLevelI32:
|
||||
return R"(textureLoad(texture, coords, array_index, level))";
|
||||
case ValidTextureOverload::kLoad3dLevelF32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoad3dLevelU32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoad3dLevelI32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoadMultisampled2dF32:
|
||||
return R"(textureLoad(texture, coords, sample_index))";
|
||||
case ValidTextureOverload::kLoadMultisampled2dU32:
|
||||
return R"(textureLoad(texture, coords, sample_index))";
|
||||
case ValidTextureOverload::kLoadMultisampled2dI32:
|
||||
return R"(textureLoad(texture, coords, sample_index))";
|
||||
case ValidTextureOverload::kLoadDepth2dLevelF32:
|
||||
return R"(textureLoad(texture, coords, level))";
|
||||
case ValidTextureOverload::kLoadDepthMultisampled2dF32:
|
||||
case ValidTextureOverload::kLoadMultisampled2dF32:
|
||||
case ValidTextureOverload::kLoadMultisampled2dU32:
|
||||
case ValidTextureOverload::kLoadMultisampled2dI32:
|
||||
return R"(textureLoad(texture, coords, sample_index))";
|
||||
case ValidTextureOverload::kLoadDepth2dArrayLevelF32:
|
||||
return R"(textureLoad(texture, coords, array_index, level))";
|
||||
case ValidTextureOverload::kLoadStorageRO1dRgba32float:
|
||||
return R"(textureLoad(texture, coords))";
|
||||
case ValidTextureOverload::kLoadStorageRO2dRgba8unorm:
|
||||
case ValidTextureOverload::kLoadStorageRO2dRgba8snorm:
|
||||
case ValidTextureOverload::kLoadStorageRO2dRgba8uint:
|
||||
@@ -2076,13 +2066,11 @@ const char* expected_texture_overload(
|
||||
case ValidTextureOverload::kLoadStorageRO3dRgba32float:
|
||||
return R"(textureLoad(texture, coords))";
|
||||
case ValidTextureOverload::kStoreWO1dRgba32float:
|
||||
return R"(textureStore(texture, coords, value))";
|
||||
case ValidTextureOverload::kStoreWO2dRgba32float:
|
||||
case ValidTextureOverload::kStoreWO3dRgba32float:
|
||||
return R"(textureStore(texture, coords, value))";
|
||||
case ValidTextureOverload::kStoreWO2dArrayRgba32float:
|
||||
return R"(textureStore(texture, coords, array_index, value))";
|
||||
case ValidTextureOverload::kStoreWO3dRgba32float:
|
||||
return R"(textureStore(texture, coords, value))";
|
||||
}
|
||||
return "<unmatched texture overload>";
|
||||
}
|
||||
@@ -2152,7 +2140,8 @@ TEST_P(ResolverIntrinsicTest_Texture, Call) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ast::intrinsic::test::TextureKind::kDepth: {
|
||||
case ast::intrinsic::test::TextureKind::kDepth:
|
||||
case ast::intrinsic::test::TextureKind::kDepthMultisampled: {
|
||||
EXPECT_TRUE(TypeOf(call)->Is<sem::F32>());
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "src/sem/array.h"
|
||||
#include "src/sem/atomic_type.h"
|
||||
#include "src/sem/call.h"
|
||||
#include "src/sem/depth_multisampled_texture_type.h"
|
||||
#include "src/sem/depth_texture_type.h"
|
||||
#include "src/sem/for_loop_statement.h"
|
||||
#include "src/sem/function.h"
|
||||
@@ -372,6 +373,9 @@ sem::Type* Resolver::Type(const ast::Type* ty) {
|
||||
if (auto* t = ty->As<ast::DepthTexture>()) {
|
||||
return builder_->create<sem::DepthTexture>(t->dim());
|
||||
}
|
||||
if (auto* t = ty->As<ast::DepthMultisampledTexture>()) {
|
||||
return builder_->create<sem::DepthMultisampledTexture>(t->dim());
|
||||
}
|
||||
if (auto* t = ty->As<ast::StorageTexture>()) {
|
||||
if (auto* el = Type(t->type())) {
|
||||
if (!ValidateStorageTexture(t)) {
|
||||
|
||||
Reference in New Issue
Block a user