virgl: adjust strides when mapping temp-resources

When we're mapping temp-resources, we clip the resource to the
transfer-box, which means the stride might not be correct any more.

So let's update the stride from the temp-resource, and recompute the
layer-stride.

This fixes crashes when running dEQP with --deqp-gl-config-name=rgba8888d24s8ms4

Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Fixes: a8987b88ff "virgl: add driver for virtio-gpu 3D (v2)"
Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Erik Faye-Lund 2018-09-12 09:48:41 +02:00 committed by Dave Airlie
parent 21b92b3464
commit fa5e9f1f73

View file

@ -176,6 +176,8 @@ static void *virgl_texture_transfer_map(struct pipe_context *ctx,
/* we want to do a resolve blit into the temporary */
hw_res = trans->resolve_tmp->hw_res;
offset = 0;
trans->base.stride = ((struct virgl_texture*)trans->resolve_tmp)->stride[level];
trans->base.layer_stride = trans->base.stride * nblocksy;
} else {
offset = vrend_get_tex_image_offset(vtex, level, box->z);