[Mesa-dev] [PATCH] radv: Update to new VK_EXT_vertex_attribute_divisor to version 2.
Samuel Pitoiset
samuel.pitoiset at gmail.com
Wed Aug 15 10:11:31 UTC 2018
On 8/15/18 11:49 AM, Jason Ekstrand wrote:
> On Tue, Aug 14, 2018 at 7:20 AM Samuel Pitoiset
> <samuel.pitoiset at gmail.com <mailto:samuel.pitoiset at gmail.com>> wrote:
>
> Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com
> <mailto:samuel.pitoiset at gmail.com>>
>
> On 7/23/18 4:24 PM, Bas Nieuwenhuizen wrote:
> > Behavior wrt firstInstance got changed, and a divisor of 0 has been
> > disallowed.
> >
> > The new version of the ext got published in specification 1.1.81.
> > ---
> > src/amd/vulkan/radv_extensions.py | 2 +-
> > src/amd/vulkan/radv_nir_to_llvm.c | 7 ++++---
> > 2 files changed, 5 insertions(+), 4 deletions(-)
> >
> > diff --git a/src/amd/vulkan/radv_extensions.py
> b/src/amd/vulkan/radv_extensions.py
> > index a5fbffac33b..d02042e5647 100644
> > --- a/src/amd/vulkan/radv_extensions.py
> > +++ b/src/amd/vulkan/radv_extensions.py
> > @@ -104,7 +104,7 @@ EXTENSIONS = [
> > Extension('VK_EXT_sampler_filter_minmax', 1,
> 'device->rad_info.chip_class >= CIK'),
> > Extension('VK_EXT_shader_viewport_index_layer', 1, True),
> > Extension('VK_EXT_shader_stencil_export', 1, True),
> > - Extension('VK_EXT_vertex_attribute_divisor', 1, True),
> > + Extension('VK_EXT_vertex_attribute_divisor', 2, True),
> > Extension('VK_AMD_draw_indirect_count', 1, True),
> > Extension('VK_AMD_gcn_shader', 1, True),
> > Extension('VK_AMD_rasterization_order', 1,
> 'device->has_out_of_order_rast'),
> > diff --git a/src/amd/vulkan/radv_nir_to_llvm.c
> b/src/amd/vulkan/radv_nir_to_llvm.c
> > index c7d772fa652..d12ef09c9f3 100644
> > --- a/src/amd/vulkan/radv_nir_to_llvm.c
> > +++ b/src/amd/vulkan/radv_nir_to_llvm.c
> > @@ -1984,8 +1984,7 @@ handle_vs_input_decl(struct
> radv_shader_context *ctx,
> > uint32_t divisor =
> ctx->options->key.vs.instance_rate_divisors[attrib_index];
> >
> > if (divisor) {
> > - buffer_index =
> LLVMBuildAdd(ctx->ac.builder, ctx->abi.instance_id,
> > -
> ctx->abi.start_instance, "");
> > + buffer_index = ctx->abi.instance_id;
> >
> > if (divisor != 1) {
> > buffer_index =
> LLVMBuildUDiv(ctx->ac.builder, buffer_index,
> > @@ -2000,8 +1999,10 @@ handle_vs_input_decl(struct
> radv_shader_context *ctx,
> > MAX2(1,
> ctx->shader_info->vs.vgpr_comp_cnt);
> > }
> > } else {
> > - buffer_index = ctx->ac.i32_0;
> > + unreachable("Invalid vertex
> attribute divisor of 0.");
>
>
> You'll want to leave this alone. zero is coming back... Yeah, I know
> it's annoying but I'm really trying to get this settled out as quickly
> as possible. In the mean time, reports are that zero is useful for some
> DXVK apps so it's best to just silently support it rather than breaking
> stuff.
Yeah, you are right. I have just reached that assertion with a DXVK app...
>
> > }
> > +
> > + buffer_index =
> LLVMBuildAdd(ctx->ac.builder, ctx->abi.start_instance, buffer_index,
> "");
> > } else
> > buffer_index =
> LLVMBuildAdd(ctx->ac.builder, ctx->abi.vertex_id,
> >
> ctx->abi.base_vertex, "");
> >
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.freedesktop.org>
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
More information about the mesa-dev
mailing list