[Mesa-dev] [PATCH] spirv: Implicitly set missing NonWriteable decoration
Jason Ekstrand
jason at jlekstrand.net
Mon Jul 2 15:02:51 UTC 2018
This should be fixed in upstream dxvk so let's not put the hack in mesa:
https://github.com/doitsujin/dxvk/issues/460
On Wed, Jun 27, 2018 at 6:25 PM, Jason Ekstrand <jason at jlekstrand.net>
wrote:
> This works around rendering issues in Skyrim caused by DXVK missing a
> decoration.
> ---
> src/compiler/spirv/vtn_variables.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_
> variables.c
> index 574f422ceab..24b278e17fd 100644
> --- a/src/compiler/spirv/vtn_variables.c
> +++ b/src/compiler/spirv/vtn_variables.c
> @@ -1752,8 +1752,24 @@ vtn_create_variable(struct vtn_builder *b, struct
> vtn_value *val,
> var->var->data.descriptor_set = var->descriptor_set;
> var->var->data.index = var->input_attachment_index;
>
> - if (glsl_type_is_image(without_array->type))
> + if (glsl_type_is_image(without_array->type)) {
> var->var->data.image.format = without_array->image_format;
> +
> + /* The requirement that the NonReadable decoration be set was
> added
> + * as a clarification to the Vulkan spec in version 1.1.76 and
> not
> + * all apps respect it. Setting it implicitly inside
> spirv_to_nir
> + * fixes rendering issues in Skyrim on DXVK as of June 27, 2018.
> + */
> + if (var->var->data.image.format == 0 &&
> + !var->var->data.image.write_only &&
> + !b->options->caps.image_read_without_format) {
> + vtn_warn("Image variable created an unknown format and
> without "
> + "the NonReadable decoration set but the driver does
> not "
> + "support shaderStorageImageReadWithoutFormat.
> Setting "
> + "the decoration implicitly to work around the
> problem.");
> + var->var->data.image.write_only = true;
> + }
> + }
> }
>
> if (var->mode == vtn_variable_mode_local) {
> --
> 2.17.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180702/9e736e38/attachment.html>
More information about the mesa-dev
mailing list