static enum pipe_reset_status dd_context_get_device_reset_status(struct pipe_context *_pipe) { struct pipe_context *pipe = dd_context(_pipe)->pipe; return pipe->get_device_reset_status(pipe); }
static struct pipe_query * dd_context_create_batch_query(struct pipe_context *_pipe, unsigned num_queries, unsigned *query_types) { struct pipe_context *pipe = dd_context(_pipe)->pipe; struct pipe_query *query; query = pipe->create_batch_query(pipe, num_queries, query_types); /* Wrap query object. */ if (query) { struct dd_query *dd_query = CALLOC_STRUCT(dd_query); if (dd_query) { /* no special handling for batch queries yet */ dd_query->type = query_types[0]; dd_query->query = query; query = (struct pipe_query *)dd_query; } else { pipe->destroy_query(pipe, query); query = NULL; } } return query; }
static void dd_context_resource_copy_region(struct pipe_context *_pipe, struct pipe_resource *dst, unsigned dst_level, unsigned dstx, unsigned dsty, unsigned dstz, struct pipe_resource *src, unsigned src_level, const struct pipe_box *src_box) { struct dd_context *dctx = dd_context(_pipe); struct pipe_context *pipe = dctx->pipe; struct dd_call call; call.type = CALL_RESOURCE_COPY_REGION; call.info.resource_copy_region.dst = dst; call.info.resource_copy_region.dst_level = dst_level; call.info.resource_copy_region.dstx = dstx; call.info.resource_copy_region.dsty = dsty; call.info.resource_copy_region.dstz = dstz; call.info.resource_copy_region.src = src; call.info.resource_copy_region.src_level = src_level; call.info.resource_copy_region.src_box = src_box; dd_before_draw(dctx); pipe->resource_copy_region(pipe, dst, dst_level, dstx, dsty, dstz, src, src_level, src_box); dd_after_draw(dctx, &call); }
static void dd_context_delete_image_handle(struct pipe_context *_pipe, uint64_t handle) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->delete_image_handle(pipe, handle); }
static void dd_context_bind_sampler_states(struct pipe_context *_pipe, enum pipe_shader_type shader, unsigned start, unsigned count, void **states) { struct dd_context *dctx = dd_context(_pipe); struct pipe_context *pipe = dctx->pipe; memcpy(&dctx->draw_state.sampler_states[shader][start], states, sizeof(void*) * count); if (states) { void *samp[PIPE_MAX_SAMPLERS]; int i; for (i = 0; i < count; i++) { struct dd_state *s = states[i]; samp[i] = s ? s->cso : NULL; } pipe->bind_sampler_states(pipe, shader, start, count, samp); } else pipe->bind_sampler_states(pipe, shader, start, count, NULL); }
static void dd_context_set_active_query_state(struct pipe_context *_pipe, boolean enable) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->set_active_query_state(pipe, enable); }
static void dd_context_memory_barrier(struct pipe_context *_pipe, unsigned flags) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->memory_barrier(pipe, flags); }
static void dd_context_transfer_unmap(struct pipe_context *_pipe, struct pipe_transfer *transfer) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->transfer_unmap(pipe, transfer); }
static void dd_context_stream_output_target_destroy(struct pipe_context *_pipe, struct pipe_stream_output_target *target) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->stream_output_target_destroy(pipe, target); }
static void dd_context_sampler_view_destroy(struct pipe_context *_pipe, struct pipe_sampler_view *view) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->sampler_view_destroy(pipe, view); }
static void dd_context_surface_destroy(struct pipe_context *_pipe, struct pipe_surface *surf) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->surface_destroy(pipe, surf); }
static void dd_context_invalidate_resource(struct pipe_context *_pipe, struct pipe_resource *resource) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->invalidate_resource(pipe, resource); }
static bool dd_context_end_query(struct pipe_context *_pipe, struct pipe_query *query) { struct dd_context *dctx = dd_context(_pipe); struct pipe_context *pipe = dctx->pipe; return pipe->end_query(pipe, dd_query_unwrap(query)); }
static void dd_context_set_device_reset_callback(struct pipe_context *_pipe, const struct pipe_device_reset_callback *cb) { struct pipe_context *pipe = dd_context(_pipe)->pipe; return pipe->set_device_reset_callback(pipe, cb); }
static void dd_context_make_texture_handle_resident(struct pipe_context *_pipe, uint64_t handle, bool resident) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->make_texture_handle_resident(pipe, handle, resident); }
static uint64_t dd_context_create_image_handle(struct pipe_context *_pipe, const struct pipe_image_view *image) { struct pipe_context *pipe = dd_context(_pipe)->pipe; return pipe->create_image_handle(pipe, image); }
static void dd_context_dump_debug_state(struct pipe_context *_pipe, FILE *stream, unsigned flags) { struct pipe_context *pipe = dd_context(_pipe)->pipe; return pipe->dump_debug_state(pipe, stream, flags); }
static void dd_context_transfer_flush_region(struct pipe_context *_pipe, struct pipe_transfer *transfer, const struct pipe_box *box) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->transfer_flush_region(pipe, transfer, box); }
static boolean dd_context_get_query_result(struct pipe_context *_pipe, struct pipe_query *query, boolean wait, union pipe_query_result *result) { struct pipe_context *pipe = dd_context(_pipe)->pipe; return pipe->get_query_result(pipe, dd_query_unwrap(query), wait, result); }
static uint64_t dd_context_create_texture_handle(struct pipe_context *_pipe, struct pipe_sampler_view *view, const struct pipe_sampler_state *state) { struct pipe_context *pipe = dd_context(_pipe)->pipe; return pipe->create_texture_handle(pipe, view, state); }
static bool dd_context_resource_commit(struct pipe_context *_pipe, struct pipe_resource *resource, unsigned level, struct pipe_box *box, bool commit) { struct pipe_context *pipe = dd_context(_pipe)->pipe; return pipe->resource_commit(pipe, resource, level, box, commit); }
static void dd_context_destroy_query(struct pipe_context *_pipe, struct pipe_query *query) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->destroy_query(pipe, dd_query_unwrap(query)); FREE(query); }
static void dd_context_make_image_handle_resident(struct pipe_context *_pipe, uint64_t handle, unsigned access, bool resident) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->make_image_handle_resident(pipe, handle, access, resident); }
static void * dd_context_transfer_map(struct pipe_context *_pipe, struct pipe_resource *resource, unsigned level, unsigned usage, const struct pipe_box *box, struct pipe_transfer **transfer) { struct pipe_context *pipe = dd_context(_pipe)->pipe; return pipe->transfer_map(pipe, resource, level, usage, box, transfer); }
static void dd_context_buffer_subdata(struct pipe_context *_pipe, struct pipe_resource *resource, unsigned usage, unsigned offset, unsigned size, const void *data) { struct pipe_context *pipe = dd_context(_pipe)->pipe; pipe->buffer_subdata(pipe, resource, usage, offset, size, data); }
static void dd_context_emit_string_marker(struct pipe_context *_pipe, const char *string, int len) { struct dd_context *dctx = dd_context(_pipe); struct pipe_context *pipe = dctx->pipe; pipe->emit_string_marker(pipe, string, len); dd_parse_apitrace_marker(string, len, &dctx->draw_state.apitrace_call_number); }
static void dd_context_get_sample_position(struct pipe_context *_pipe, unsigned sample_count, unsigned sample_index, float *out_value) { struct pipe_context *pipe = dd_context(_pipe)->pipe; return pipe->get_sample_position(pipe, sample_count, sample_index, out_value); }
static boolean dd_screen_fence_finish(struct pipe_screen *_screen, struct pipe_context *_ctx, struct pipe_fence_handle *fence, uint64_t timeout) { struct pipe_screen *screen = dd_screen(_screen)->screen; struct pipe_context *ctx = _ctx ? dd_context(_ctx)->pipe : NULL; return screen->fence_finish(screen, ctx, fence, timeout); }
static boolean dd_screen_resource_get_handle(struct pipe_screen *_screen, struct pipe_context *_pipe, struct pipe_resource *resource, struct winsys_handle *handle, unsigned usage) { struct pipe_screen *screen = dd_screen(_screen)->screen; struct pipe_context *pipe = _pipe ? dd_context(_pipe)->pipe : NULL; return screen->resource_get_handle(screen, pipe, resource, handle, usage); }
static void dd_context_set_vertex_buffers(struct pipe_context *_pipe, unsigned start, unsigned num_buffers, const struct pipe_vertex_buffer *buffers) { struct dd_context *dctx = dd_context(_pipe); struct pipe_context *pipe = dctx->pipe; safe_memcpy(&dctx->draw_state.vertex_buffers[start], buffers, sizeof(buffers[0]) * num_buffers); pipe->set_vertex_buffers(pipe, start, num_buffers, buffers); }