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
void TestRenderPipelineStateNow(base::scoped_nsprotocol<id<MTLDevice>> device,
const base::TimeDelta& timeout,
TestShaderCallback callback)
API_AVAILABLE(macos(10.11)) {
API_AVAILABLE(macos(10.14)) {
// Load the library binary. This should not fail.
base::ScopedDispatchObject<dispatch_data_t> library_data = GetLibraryData();
NSError* error = nil;
......@@ -763,21 +763,27 @@ void TestShader(TestShaderCallback callback,
std::move(callback));
break;
case TestShaderComponent::kLink:
closure = base::BindOnce(&TestRenderPipelineStateNow, device, timeout,
std::move(callback));
// The metallib listed above is in MTLLanguageVersion2_1, which is
// available only on 10.14 and above.
if (@available(macOS 10.14, *)) {
closure = base::BindOnce(&TestRenderPipelineStateNow, device,
timeout, std::move(callback));
}
break;
}
// Run either immediately or after the specified delay.
if (delay.is_zero()) {
std::move(closure).Run();
} else {
base::PostDelayedTask(
FROM_HERE,
base::TaskTraits(base::ThreadPool(), base::TaskPriority::HIGHEST),
std::move(closure), delay);
if (closure) {
if (delay.is_zero()) {
std::move(closure).Run();
} else {
base::PostDelayedTask(
FROM_HERE,
base::TaskTraits(base::ThreadPool(), base::TaskPriority::HIGHEST),
std::move(closure), delay);
}
return;
}
return;
}
}
std::move(callback).Run(TestShaderResult::kNotAttempted, 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