#include "lp_screen.h"
#include "lp_state.h"
#include "lp_debug.h"
-#include "state_tracker/sw_winsys.h"
+#include "frontend/sw_winsys.h"
+#include "lp_flush.h"
static void *
debug_printf("Illegal setting of sampler_view %d created in another "
"context\n", i);
}
+
+ if (views[i])
+ llvmpipe_flush_resource(pipe, views[i]->texture, 0, true, false, false, "sampler_view");
pipe_sampler_view_reference(&llvmpipe->sampler_views[shader][start + i],
views[i]);
}
#ifdef DEBUG
/*
* This is possibly too lenient, but the primary reason is just
- * to catch state trackers which forget to initialize this, so
+ * to catch gallium frontends which forget to initialize this, so
* it only catches clearly impossible view targets.
*/
if (view->target != texture->target) {
assert(last_level <= res->last_level);
addr = lp_tex->tex_data;
+ sample_stride = lp_tex->sample_stride;
+
for (j = first_level; j <= last_level; j++) {
mip_offsets[j] = lp_tex->mip_offsets[j];
row_stride[j] = lp_tex->row_stride[j];
row_stride = lp_img->row_stride[view->u.tex.level];
img_stride = lp_img->img_stride[view->u.tex.level];
- sample_stride = 0;
+ sample_stride = lp_img->sample_stride;
addr = (uint8_t *)addr + mip_offset;
}
else {