Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>
On Tue, Jan 31, 2017, at 01:38, Dave Airlie wrote: > From: Dave Airlie <airl...@redhat.com> > > There are some corner cases where you end up with an esgs ring, but no > gsvs ring, test for both before dereferencing. > > Fixes: > dEQP-VK.geometry.emit.points_emit_0_end_0 > > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > src/amd/vulkan/radv_device.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c > index a12c56c..33e2206 100644 > --- a/src/amd/vulkan/radv_device.c > +++ b/src/amd/vulkan/radv_device.c > @@ -1058,11 +1058,14 @@ fill_geom_rings(struct radv_queue *queue, > uint32_t gsvs_ring_size, > struct radeon_winsys_bo *gsvs_ring_bo) > { > - uint64_t esgs_va, gsvs_va; > - esgs_va = queue->device->ws->buffer_get_va(esgs_ring_bo); > - gsvs_va = queue->device->ws->buffer_get_va(gsvs_ring_bo); > + uint64_t esgs_va = 0, gsvs_va = 0; > uint32_t *desc = &map[4]; > > + if (esgs_ring_bo) > + esgs_va = queue->device->ws->buffer_get_va(esgs_ring_bo); > + if (gsvs_ring_bo) > + gsvs_va = queue->device->ws->buffer_get_va(gsvs_ring_bo); > + > /* stride 0, num records - size, add tid, swizzle, elsize4, > index stride 64 */ > desc[0] = esgs_va; > -- > 2.9.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev