q->data.u64 += emitted;
}
-static bool
-pass_render_condition(struct ilo_3d *hw3d, struct pipe_context *pipe)
+bool
+ilo_3d_pass_render_condition(struct ilo_context *ilo)
{
+ struct ilo_3d *hw3d = ilo->hw3d;
uint64_t result;
bool wait;
break;
}
- if (pipe->get_query_result(pipe, hw3d->render_condition.query,
- wait, (union pipe_query_result *) &result)) {
+ if (ilo->base.get_query_result(&ilo->base, hw3d->render_condition.query,
+ wait, (union pipe_query_result *) &result))
return (!result == hw3d->render_condition.cond);
- }
- else {
+ else
return true;
- }
}
#define UPDATE_MIN2(a, b) (a) = MIN2((a), (b))
struct ilo_3d *hw3d = ilo->hw3d;
int prim_generated, prim_emitted;
- if (!pass_render_condition(hw3d, pipe))
+ if (!ilo_3d_pass_render_condition(ilo))
return;
if (info->primitive_restart && info->indexed) {
void
ilo_3d_process_query(struct ilo_context *ilo, struct ilo_query *q);
+bool
+ilo_3d_pass_render_condition(struct ilo_context *ilo);
+
void
ilo_init_3d_functions(struct ilo_context *ilo);
#include "util/u_pack_color.h"
#include "intel_reg.h"
+#include "ilo_3d.h"
#include "ilo_context.h"
#include "ilo_cp.h"
#include "ilo_resource.h"
union util_color packed;
bool success;
+ if (!ilo_3d_pass_render_condition(blitter->ilo))
+ return true;
+
switch (cpp) {
case 1:
mask = GEN6_BLT_MASK_8;
struct pipe_box box;
uint32_t val;
+ if (!ilo_3d_pass_render_condition(blitter->ilo))
+ return true;
+
switch (zs->format) {
case PIPE_FORMAT_Z16_UNORM:
if (!(clear_flags & PIPE_CLEAR_DEPTH))
#include "util/u_blitter.h"
#include "util/u_surface.h"
+#include "ilo_3d.h"
#include "ilo_context.h"
#include "ilo_blitter.h"
util_blitter_save_rasterizer(b, (void *) ilo->rasterizer);
util_blitter_save_framebuffer(b, &ilo->fb.state);
+ util_blitter_save_render_condition(b,
+ ilo->hw3d->render_condition.query,
+ ilo->hw3d->render_condition.cond,
+ ilo->hw3d->render_condition.mode);
+
util_blitter_save_fragment_sampler_states(b,
ilo->sampler[PIPE_SHADER_FRAGMENT].count,
(void **) ilo->sampler[PIPE_SHADER_FRAGMENT].cso);