for (int i = 0; i < batch->exec_count; i++) {
struct iris_bo *bo = batch->exec_bos[i];
- if (address >= bo->gtt_offset &&
- address < bo->gtt_offset + bo->size) {
+ /* The decoder zeroes out the top 16 bits, so we need to as well */
+ uint64_t bo_address = bo->gtt_offset & (~0ull >> 16);
+
+ if (address >= bo_address && address < bo_address + bo->size) {
return (struct gen_batch_decode_bo) {
.addr = address,
.size = bo->size,
.map = iris_bo_map(batch->dbg, bo, MAP_READ) +
- (address - bo->gtt_offset),
+ (address - bo_address),
};
}
}
struct iris_resource *res = (void *) view->pipe.texture;
*bt_map++ = use_sampler_view(batch, view);
}
-#if 0
+#if 0
// XXX: not implemented yet
assert(prog_data->binding_table.pull_constants_start == 0xd0d0d0d0);
assert(prog_data->binding_table.ubo_start == 0xd0d0d0d0);