* is safe because texture views aren't allowed on depth/stencil.
*/
mesa_fmt = mt->format;
- } else if (mt->etc_format != MESA_FORMAT_NONE) {
+ } else if (intel_miptree_has_etc_shadow(brw, mt)) {
mesa_fmt = mt->shadow_mt->format;
} else if (plane > 0) {
mesa_fmt = mt->format;
mt = mt->shadow_mt;
format = ISL_FORMAT_R8_UINT;
} else if (intel_miptree_needs_fake_etc(brw, mt)) {
- assert(mt->shadow_mt);
+ assert(mt->shadow_mt && !mt->shadow_needs_update);
mt = mt->shadow_mt;
}
reloc_flags),
.size_B = buffer_size,
.format = surface_format,
+ .swizzle = ISL_SWIZZLE_IDENTITY,
.stride_B = pitch,
.mocs = brw_get_bo_mocs(devinfo, bo));
}
ISL_FORMAT_RAW,
3 * sizeof(GLuint), 1,
RELOC_WRITE);
+
+ /* The state buffer now holds a reference to our upload, drop ours. */
+ if (bo != brw->compute.num_work_groups_bo)
+ brw_bo_unreference(bo);
+
brw->ctx.NewDriverState |= BRW_NEW_SURFACES;
}
}