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

Author: Jason Ekstrand <[email protected]>
Date:   Sat Nov 11 21:43:46 2017 -0800

aubinator: Don't skip the first field in each subgroup

The previous iteration algorithm would advance the field pointer right
after we advance the group.  This meant that you would end up with
skipping the first field of the group.  In the common case, where the
only field is a struct (e.g. 3DSTATE_VERTEX_BUFFERS), it would get
skipped entirely.

Reviewed-by: Lionel Landwerlin <[email protected]>

---

 src/intel/common/gen_decoder.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/intel/common/gen_decoder.c b/src/intel/common/gen_decoder.c
index d09b6ea32b..b3501aec91 100644
--- a/src/intel/common/gen_decoder.c
+++ b/src/intel/common/gen_decoder.c
@@ -824,14 +824,15 @@ iter_advance_group(struct gen_field_iterator *iter)
 static bool
 iter_advance_field(struct gen_field_iterator *iter)
 {
-   while (!iter_more_fields(iter)) {
+   if (iter_more_fields(iter)) {
+      iter->field = iter->field->next;
+   } else {
       if (!iter_more_groups(iter))
          return false;
 
       iter_advance_group(iter);
    }
 
-   iter->field = iter->field->next;
    if (iter->field->name)
       strncpy(iter->name, iter->field->name, sizeof(iter->name));
    else

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to