Mesa (master): i965: Mark error annotation on correct SIMD16 inst.

Matt Turner mattst88 at kemper.freedesktop.org
Fri Jan 20 20:10:58 UTC 2017


Module: Mesa
Branch: master
Commit: f9a4fc9b1519337d6f3da9c6cacd20adba5fe081
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f9a4fc9b1519337d6f3da9c6cacd20adba5fe081

Author: Matt Turner <mattst88 at gmail.com>
Date:   Sat Nov 19 19:20:02 2016 -0800

i965: Mark error annotation on correct SIMD16 inst.

inst, whose assignment can be seen in the last line of context pointed
to the correct instruction in the SIMD16 program, but src_offset was the
offset from the beginning of the SIMD16 program.

So if an instruction at offset 0x100 in the SIMD16 program was illegal,
we would mark an error on the instruction at offset 0x100 (which is
likely in the SIMD8 program).

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/brw_eu_validate.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_eu_validate.c b/src/mesa/drivers/dri/i965/brw_eu_validate.c
index 0e736ed..fa1d67c 100644
--- a/src/mesa/drivers/dri/i965/brw_eu_validate.c
+++ b/src/mesa/drivers/dri/i965/brw_eu_validate.c
@@ -135,10 +135,10 @@ brw_validate_instructions(const struct brw_codegen *p, int start_offset,
                           struct annotation_info *annotation)
 {
    const struct gen_device_info *devinfo = p->devinfo;
-   const void *store = p->store + start_offset / 16;
+   const void *store = p->store;
    bool valid = true;
 
-   for (int src_offset = 0; src_offset < p->next_insn_offset - start_offset;
+   for (int src_offset = start_offset; src_offset < p->next_insn_offset;
         src_offset += sizeof(brw_inst)) {
       struct string error_msg = { .str = NULL, .len = 0 };
       const brw_inst *inst = store + src_offset;




More information about the mesa-commit mailing list