Merge pull request #1505 from cdavis5e/msl-vertex-writes
MSL: For 2.1+, don't disable rasterization for vertex writes.
This commit is contained in:
commit
5ae9153a78
@ -1265,7 +1265,8 @@ void CompilerMSL::preprocess_op_codes()
|
|||||||
add_pragma_line("#pragma clang diagnostic ignored \"-Wunused-variable\"");
|
add_pragma_line("#pragma clang diagnostic ignored \"-Wunused-variable\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metal vertex functions that write to resources must disable rasterization and return void.
|
// Before MSL 2.1 (2.2 for textures), Metal vertex functions that write to
|
||||||
|
// resources must disable rasterization and return void.
|
||||||
if (preproc.uses_resource_write)
|
if (preproc.uses_resource_write)
|
||||||
is_rasterization_disabled = true;
|
is_rasterization_disabled = true;
|
||||||
|
|
||||||
@ -13181,6 +13182,7 @@ bool CompilerMSL::OpCodePreprocessor::handle(Op opcode, const uint32_t *args, ui
|
|||||||
}
|
}
|
||||||
|
|
||||||
case OpImageWrite:
|
case OpImageWrite:
|
||||||
|
if (!compiler.msl_options.supports_msl_version(2, 2))
|
||||||
uses_resource_write = true;
|
uses_resource_write = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -13293,7 +13295,8 @@ void CompilerMSL::OpCodePreprocessor::check_resource_write(uint32_t var_id)
|
|||||||
{
|
{
|
||||||
auto *p_var = compiler.maybe_get_backing_variable(var_id);
|
auto *p_var = compiler.maybe_get_backing_variable(var_id);
|
||||||
StorageClass sc = p_var ? p_var->storage : StorageClassMax;
|
StorageClass sc = p_var ? p_var->storage : StorageClassMax;
|
||||||
if (sc == StorageClassUniform || sc == StorageClassStorageBuffer)
|
if (!compiler.msl_options.supports_msl_version(2, 1) &&
|
||||||
|
(sc == StorageClassUniform || sc == StorageClassStorageBuffer))
|
||||||
uses_resource_write = true;
|
uses_resource_write = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user