intel/batch-decoder: fix vertex buffer size calculation for gen<8
authorAndrii Simiklit <andrii.simiklit@globallogic.com>
Thu, 24 Jan 2019 10:28:29 +0000 (12:28 +0200)
committerAndrii Simiklit <andrii.simiklit@globallogic.com>
Fri, 25 Jan 2019 13:12:07 +0000 (15:12 +0200)
It should be incremented by one according to
how it is calculated by 'emit_vertex_buffer_state':
  "\#if GEN_GEN < 8
      .BufferAccessType = step_rate ? INSTANCEDATA : VERTEXDATA,
      .InstanceDataStepRate = step_rate,
   \#if GEN_GEN >= 5
      .EndAddress = ro_bo(bo, end_offset - 1),
   \#endif
   \#endif"

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109449
Signed-off-by: Andrii Simiklit <andrii.simiklit@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/intel/common/gen_batch_decoder.c

index ff29074c6d1d1c3d70f581bce9521f5c33d1b2e3..2a9c8579a7c4c7cd41e733455821ed7e6984360a 100644 (file)
@@ -409,7 +409,7 @@ handle_3dstate_vertex_buffers(struct gen_batch_decode_ctx *ctx,
             ready = true;
          } else if (strcmp(vbs_iter.name, "End Address") == 0) {
             if (vb.map && vbs_iter.raw_value >= vb.addr)
-               vb_size = vbs_iter.raw_value - vb.addr;
+               vb_size = (vbs_iter.raw_value + 1) - vb.addr;
             else
                vb_size = 0;
             ready = true;