Commit a26d2934 authored by Christopher Cameron's avatar Christopher Cameron Committed by Commit Bot

Metal: Restrict test shader link to 10.14+

The embedded metallib uses MTLLanguageVersion2_1, available only
macOS 10.14+.

Bug: 1046671
Change-Id: Iac72569f4d9ad25ced7c0284dbbfd790ab3ecd4c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2028266Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
Commit-Queue: ccameron <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#736512}
parent 1c79c648
...@@ -656,7 +656,7 @@ class API_AVAILABLE(macos(10.11)) TestShaderState ...@@ -656,7 +656,7 @@ class API_AVAILABLE(macos(10.11)) TestShaderState
void TestRenderPipelineStateNow(base::scoped_nsprotocol<id<MTLDevice>> device, void TestRenderPipelineStateNow(base::scoped_nsprotocol<id<MTLDevice>> device,
const base::TimeDelta& timeout, const base::TimeDelta& timeout,
TestShaderCallback callback) TestShaderCallback callback)
API_AVAILABLE(macos(10.11)) { API_AVAILABLE(macos(10.14)) {
// Load the library binary. This should not fail. // Load the library binary. This should not fail.
base::ScopedDispatchObject<dispatch_data_t> library_data = GetLibraryData(); base::ScopedDispatchObject<dispatch_data_t> library_data = GetLibraryData();
NSError* error = nil; NSError* error = nil;
...@@ -763,12 +763,17 @@ void TestShader(TestShaderCallback callback, ...@@ -763,12 +763,17 @@ void TestShader(TestShaderCallback callback,
std::move(callback)); std::move(callback));
break; break;
case TestShaderComponent::kLink: case TestShaderComponent::kLink:
closure = base::BindOnce(&TestRenderPipelineStateNow, device, timeout, // The metallib listed above is in MTLLanguageVersion2_1, which is
std::move(callback)); // available only on 10.14 and above.
if (@available(macOS 10.14, *)) {
closure = base::BindOnce(&TestRenderPipelineStateNow, device,
timeout, std::move(callback));
}
break; break;
} }
// Run either immediately or after the specified delay. // Run either immediately or after the specified delay.
if (closure) {
if (delay.is_zero()) { if (delay.is_zero()) {
std::move(closure).Run(); std::move(closure).Run();
} else { } else {
...@@ -780,6 +785,7 @@ void TestShader(TestShaderCallback callback, ...@@ -780,6 +785,7 @@ void TestShader(TestShaderCallback callback,
return; return;
} }
} }
}
std::move(callback).Run(TestShaderResult::kNotAttempted, base::TimeDelta(), std::move(callback).Run(TestShaderResult::kNotAttempted, base::TimeDelta(),
base::TimeDelta()); base::TimeDelta());
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment