31#define WINED3D_INITIAL_CS_SIZE 4096
579#define WINED3D_TO_STR(type) case type: return #type
664 swapchain =
op->swapchain;
669 if ((logo_texture = swapchain->
device->logo_texture))
678 if ((cursor_texture = swapchain->
device->cursor_texture)
679 && swapchain->
device->bCursorVisible && !swapchain->
device->hardwareCursor)
683 swapchain->
device->xScreenSpace - swapchain->
device->xHotSpot,
684 swapchain->
device->yScreenSpace - swapchain->
device->yHotSpot,
685 swapchain->
device->xScreenSpace + swapchain->
device->cursorWidth - swapchain->
device->xHotSpot,
686 swapchain->
device->yScreenSpace + swapchain->
device->cursorHeight - swapchain->
device->yHotSpot,
694 TRACE(
"Rendering the software cursor.\n");
703 swapchain->
swapchain_ops->swapchain_present(swapchain, &
op->src_rect, &
op->dst_rect,
op->swap_interval,
op->flags);
721 if (
swapchain->last_present_time.QuadPart)
723 elapsed_time =
time.QuadPart -
swapchain->last_present_time.QuadPart;
724 TRACE_(frametime)(
"Frame duration %u μs.\n", (
unsigned int)(elapsed_time * 1000000 / freq.
QuadPart));
736 TRACE_(fps)(
"%p @ approx %.2ffps\n",
749 const RECT *src_rect,
const RECT *dst_rect,
HWND dst_window_override,
770 for (
i = 0;
i <
swapchain->state.desc.backbuffer_count; ++
i)
779 while (pending >=
swapchain->max_frame_latency)
786 TRACE_(d3d_perf)(
"Reached latency limit (%u frames), blocking to wait.\n",
swapchain->max_frame_latency);
790 TRACE_(d3d_perf)(
"Woken up from the wait.\n");
801 op->rect_count,
op->rects, &
op->draw_rect,
op->flags, &
op->color,
op->depth,
op->stencil);
822 if (
state->rasterizer_state &&
state->rasterizer_state->desc.scissor)
859 op->fb.render_targets[0] =
view;
860 op->fb.depth_stencil =
NULL;
866 op->fb.render_targets[0] =
NULL;
867 op->fb.depth_stencil =
view;
887 box.left =
op->rect.left;
888 box.right =
op->rect.right;
889 box.top =
op->rect.top;
890 box.bottom =
op->rect.bottom;
902 TRACE(
"context %p, texture %p, sub_resource_idx %u, rect %s, flags %#x, color %s.\n",
919 op->sub_resource_idx = sub_resource_idx;
928 unsigned int level_idx = sub_resource_idx %
texture->level_count;
956 if (!(shader_mask & (1u <<
i)))
978 for (
j = 0;
j <
shader->reg_maps.sampler_map.count; ++
j)
1000 if (!
shader->reg_maps.uav_resource_info[
i].type)
1016 WARN(
"No compute shader bound, skipping dispatch.\n");
1018 cs->c.device->adapter->adapter_ops->adapter_dispatch_compute(
cs->c.device,
state, &
op->parameters);
1031 unsigned int group_count_x,
unsigned int group_count_y,
unsigned int group_count_z)
1038 op->parameters.indirect =
FALSE;
1039 op->parameters.u.direct.group_count_x = group_count_x;
1040 op->parameters.u.direct.group_count_y = group_count_y;
1041 op->parameters.u.direct.group_count_z = group_count_z;
1057 op->parameters.indirect =
TRUE;
1058 op->parameters.u.indirect.buffer =
buffer;
1059 op->parameters.u.indirect.offset =
offset;
1073 int base_vertex_idx, load_base_vertex_idx;
1078 base_vertex_idx = 0;
1079 if (!
op->parameters.indirect)
1085 else if (!
op->parameters.indexed)
1091 load_base_vertex_idx =
op->parameters.u.direct.base_vertex_idx;
1093 load_base_vertex_idx = 0;
1098 for (
i = 0;
i <
device->context_count; ++
i)
1102 if (
state->load_base_vertex_index != load_base_vertex_idx)
1104 state->load_base_vertex_index = load_base_vertex_idx;
1108 if (
state->primitive_type !=
op->primitive_type)
1117 state->primitive_type =
op->primitive_type;
1118 for (
i = 0;
i <
device->context_count; ++
i)
1119 device->contexts[
i]->update_primitive_type = 1;
1121 if (
state->patch_vertex_count !=
op->patch_vertex_count)
1123 for (
i = 0;
i <
device->context_count; ++
i)
1124 device->contexts[
i]->update_patch_vertex_count = 1;
1126 state->patch_vertex_count =
op->patch_vertex_count;
1128 cs->c.device->adapter->adapter_ops->adapter_draw_primitive(
cs->c.device,
state, &
op->parameters);
1141 if (
state->streams[
i].buffer)
1146 if (
state->stream_output[
i].buffer)
1149 for (
i = 0;
i < d3d_info->
limits.max_rt_count; ++
i)
1151 if (
state->fb.render_targets[
i])
1156 if (
context->device->push_constants[
i])
1159 if (
state->fb.depth_stencil)
1168 unsigned int start_idx,
unsigned int index_count,
unsigned int start_instance,
unsigned int instance_count,
1178 op->parameters.indirect =
FALSE;
1179 op->parameters.u.direct.base_vertex_idx = base_vertex_idx;
1180 op->parameters.u.direct.start_idx = start_idx;
1181 op->parameters.u.direct.index_count = index_count;
1182 op->parameters.u.direct.start_instance = start_instance;
1183 op->parameters.u.direct.instance_count = instance_count;
1184 op->parameters.indexed = indexed;
1201 op->primitive_type =
state->primitive_type;
1202 op->patch_vertex_count =
state->patch_vertex_count;
1203 op->parameters.indirect =
TRUE;
1204 op->parameters.u.indirect.buffer =
buffer;
1205 op->parameters.u.indirect.offset =
offset;
1206 op->parameters.indexed = indexed;
1219 TRACE_(d3d_perf)(
"Flushing adapter.\n");
1221 cs->c.device->adapter->adapter_ops->adapter_flush_context(
context);
1234 cs->queries_flushed =
TRUE;
1241 cs->state.predicate =
op->predicate;
1242 cs->state.predicate_value =
op->value;
1262 if (
op->viewport_count)
1263 memcpy(
cs->state.viewports,
op->viewports,
op->viewport_count *
sizeof(*
op->viewports));
1265 memset(
cs->state.viewports, 0,
sizeof(*
cs->state.viewports));
1266 cs->state.viewport_count =
op->viewport_count;
1289 memcpy(
cs->state.scissor_rects,
op->rects,
op->rect_count *
sizeof(*
op->rects));
1292 cs->state.scissor_rect_count =
op->rect_count;
1316 for (
i = 0;
i <
op->count; ++
i)
1320 bool prev_alpha_swizzle, curr_alpha_swizzle;
1321 bool prev_srgb_write, curr_srgb_write;
1323 cs->state.fb.render_targets[
op->start_idx +
i] =
view;
1327 if (prev_alpha_swizzle != curr_alpha_swizzle)
1335 if (prev_srgb_write != curr_srgb_write)
1374 cs->state.fb.depth_stencil =
op->view;
1376 if (!prev != !
op->view)
1385 if (prev->
format->depth_bias_scale !=
op->view->format->depth_bias_scale)
1387 if (prev->
format->stencil_size !=
op->view->format->stencil_size)
1410 cs->state.vertex_declaration =
op->declaration;
1431 for (
i = 0;
i <
op->count; ++
i)
1437 ++
buffer->resource.bind_count;
1442 memcpy(&
cs->state.streams[
op->start_idx],
op->streams,
op->count *
sizeof(*
op->streams));
1472 ++
buffer->resource.bind_count;
1477 memcpy(
cs->state.stream_output,
op->outputs,
sizeof(
op->outputs));
1498 prev =
cs->state.index_buffer;
1499 cs->state.index_buffer =
op->buffer;
1500 cs->state.index_format =
op->format_id;
1501 cs->state.index_offset =
op->offset;
1504 ++
op->buffer->resource.bind_count;
1530 for (
i = 0;
i <
op->count; ++
i)
1535 cs->state.cb[
op->type][
op->start_idx +
i] =
op->buffers[
i];
1538 ++
buffer->resource.bind_count;
1566 unsigned int old_usage, new_usage, old_caps, new_caps;
1574 new_usage =
view->resource->usage;
1579 old_format = prev->
resource->format;
1580 new_format =
view->resource->format;
1581 old_caps = prev->
resource->format_caps;
1582 new_caps =
view->resource->format_caps;
1601 prev =
cs->state.shader_resource_view[
op->shader_type][
op->bind_index];
1602 cs->state.shader_resource_view[
op->shader_type][
op->bind_index] =
op->view;
1606 ++
op->view->resource->bind_count;
1640 for (
i = 0;
i <
op->count; ++
i)
1645 cs->state.shader_resource_view[
op->type][
op->start_idx +
i] =
view;
1648 ++
view->resource->bind_count;
1681 for (
i = 0;
i <
op->count; ++
i)
1685 unsigned int initial_count =
op->uavs[
i].initial_count;
1687 cs->state.unordered_access_view[
op->pipeline][
op->start_idx +
i] =
view;
1690 ++
view->resource->bind_count;
1694 if (
view && initial_count != ~0
u)
1716 op->uavs[
i].view = views[
i];
1717 op->uavs[
i].initial_count = initial_counts ? initial_counts[
i] : ~0
u;
1728 for (
i = 0;
i <
op->count; ++
i)
1729 cs->state.sampler[
op->type][
op->start_idx +
i] =
op->samplers[
i];
1758 if (!
cs->state.shader[
op->type] &&
op->shader)
1760 cs->state.shader[
op->type] =
op->shader;
1787 if (
state->blend_state !=
op->state)
1789 state->blend_state =
op->state;
1792 state->blend_factor =
op->factor;
1794 state->sample_mask =
op->sample_mask;
1796 for (
unsigned int i = 0;
i <
device->context_count; ++
i)
1797 device->contexts[
i]->update_multisample_state = 1;
1808 op->factor = *blend_factor;
1819 if (
state->depth_stencil_state !=
op->state)
1821 state->depth_stencil_state =
op->state;
1824 state->stencil_ref =
op->stencil_ref;
1845 cs->state.rasterizer_state =
op->state;
1856 op->state = rasterizer_state;
1865 cs->state.depth_bounds_enable =
op->enable;
1866 cs->state.depth_bounds_min =
op->min_depth;
1867 cs->state.depth_bounds_max =
op->max_depth;
1889 cs->state.render_states[
op->state] =
op->value;
1910 cs->state.texture_states[
op->stage][
op->state] =
op->value;
1932 cs->state.transforms[
op->state] =
op->matrix;
1957 cs->state.clip_planes[
op->plane_idx] =
op->plane;
1984 texture->async.dst_blt_color_key =
op->color_key;
1989 texture->async.dst_overlay_color_key =
op->color_key;
2000 texture->async.src_blt_color_key =
op->color_key;
2005 texture->async.src_overlay_color_key =
op->color_key;
2015 texture->async.color_key_flags &= ~WINED3D_CKEY_DST_BLT;
2019 texture->async.color_key_flags &= ~WINED3D_CKEY_DST_OVERLAY;
2027 texture->async.color_key_flags &= ~WINED3D_CKEY_SRC_BLT;
2031 texture->async.color_key_flags &= ~WINED3D_CKEY_SRC_OVERLAY;
2061 unsigned int light_idx;
2063 light_idx =
op->light.OriginalIndex;
2067 TRACE(
"Adding new light.\n");
2068 if (!(light_info =
calloc(1,
sizeof(*light_info))))
2070 ERR(
"Failed to allocate light info.\n");
2103 ERR(
"Light doesn't exist.\n");
2126 cs->state.feature_level =
op->level;
2163 bool gpu =
device->adapter->d3d_info.gpu_push_constants;
2168 .byte_width =
info->max_count *
info->size,
2182 ERR(
"Failed to create push constant buffer, hr %#lx.\n",
hr);
2193 unsigned int ffp_start_idx, ffp_end_idx;
2203 device->shader_backend->shader_update_float_vertex_constants(
device,
op->start_idx,
op->count);
2205 device->shader_backend->shader_update_float_pixel_constants(
device,
op->start_idx,
op->count);
2207 device->shader_backend->shader_update_float_vertex_constants(
device, ffp_start_idx, ffp_end_idx - ffp_start_idx);
2209 device->shader_backend->shader_update_float_pixel_constants(
device, ffp_start_idx, ffp_end_idx - ffp_start_idx);
2211 for (
i = 0, context_count =
device->context_count;
i < context_count; ++
i)
2212 device->contexts[
i]->constant_update_mask |=
op->update_mask;
2236 unsigned int byte_offset = start_idx *
info->size;
2237 unsigned int byte_size =
count *
info->size;
2284 op->callback(
op->object);
2317 if (!
query->poll_in_cs)
2326 if (
query->buffer_object)
2362 ++
query->counter_main;
2383 if (
list->query_count)
2387 for (
i = 0;
i <
list->query_count; ++
i)
2391 list->queries[
i].query->counter_main++;
2401 for (
i = 0;
i <
list->resource_count; ++
i)
2404 for (
i = 0;
i <
list->command_list_count; ++
i)
2407 for (
i = 0;
i <
list->upload_count; ++
i)
2457 const struct upload_bo *bo,
unsigned int row_pitch,
unsigned int slice_pitch)
2461 TRACE(
"context %p, resource %p, sub_resource_idx %u, box %s, bo %s, flags %#x, row_pitch %u, slice_pitch %u.\n",
2485 op->sub_resource_idx,
op->map_ptr,
op->box,
op->flags);
2502 TRACE(
"Returning map pointer %p, row pitch %u, slice pitch %u.\n",
2519 op->map_ptr = &map_desc->
data;
2551 unsigned int row_pitch, slice_pitch;
2567 op->sub_resource_idx = sub_resource_idx;
2609 op->src_box.right -
op->src_box.left);
2614 unsigned int level, update_w, update_h, update_d;
2622 FIXME(
"Flags %#x not implemented for %s resources.\n",
2629 FIXME(
"Format conversion not implemented for %s resources.\n",
2634 update_w =
op->dst_box.right -
op->dst_box.left;
2635 update_h =
op->dst_box.bottom -
op->dst_box.top;
2636 update_d =
op->dst_box.back -
op->dst_box.front;
2637 if (
op->src_box.right -
op->src_box.left != update_w
2638 ||
op->src_box.bottom -
op->src_box.top != update_h
2639 ||
op->src_box.back -
op->src_box.front != update_d)
2641 FIXME(
"Stretching not implemented for %s resources.\n",
2659 ERR(
"Failed to load source sub-resource into %s.\n",
2676 ERR(
"Failed to load destination sub-resource.\n");
2683 &row_pitch, &slice_pitch);
2686 dst_texture->
resource.format, &
op->src_box, row_pitch, slice_pitch, dst_texture,
2688 op->dst_box.left,
op->dst_box.top,
op->dst_box.front);
2698 &
op->src_box,
op->flags, &
op->fx,
op->filter)))
2699 FIXME(
"Blit failed.\n");
2759 if (
op->bo.addr.buffer_object)
2762 free((
void *)
op->bo.addr.addr);
2768 const void *
data,
unsigned int row_pitch,
unsigned int slice_pitch)
2795 op->sub_resource_idx = sub_resource_idx;
2797 op->bo.addr.buffer_object = 0;
2800 op->row_pitch = row_pitch;
2801 op->slice_pitch = slice_pitch;
2813 unsigned int sub_resource_idx,
i;
2850 cs->c.device->adapter->adapter_ops->adapter_clear_uav(
context,
view, &
op->clear_value,
op->fp);
2888 op->buffer = dst_buffer;
2904 cs->c.device->adapter->adapter_ops->adapter_generate_mipmap(
context,
view);
3018 if (
size > (
cs->data_size -
cs->end))
3032 cs->start =
cs->end = 0;
3033 cs->data = new_data;
3038 return (
BYTE *)
cs->data +
cs->start;
3050 cs->start =
cs->end;
3054 ERR(
"Invalid opcode %#x.\n", opcode);
3098 TRACE(
"Not allocating an upload buffer because system memory is pinned for this resource.\n");
3121 if ((bo =
addr.buffer_object))
3133 WARN_(d3d_perf)(
"Not accelerating a NOOVERWRITE map because the BO is not mapped.\n");
3142 WARN_(d3d_perf)(
"Not accelerating a NOOVERWRITE map because the sub-resource has no valid address.\n");
3150 client->mapped_upload.flags = 0;
3168 client->mapped_upload.flags);
3176 WARN_(d3d_perf)(
"Failed to allocate a heap memory buffer.\n");
3179 client->mapped_upload.addr.buffer_object = 0;
3180 client->mapped_upload.addr.addr = map_desc->
data;
3188 return !
addr->buffer_object && !
addr->addr;
3201 if ((bo =
client->mapped_upload.addr.buffer_object))
3246 if (pNtAlertThreadByThreadId)
3266 size_t header_size, packet_size, remaining;
3272 packet_size = (packet_size + header_size - 1) & ~(header_size - 1);
3273 size = packet_size - header_size;
3280 remaining = queue_size -
head;
3281 if (remaining < packet_size)
3283 size_t nop_size = remaining - header_size;
3286 TRACE(
"Inserting a nop for %Iu + %Iu bytes.\n", header_size, nop_size);
3312 if (new_pos <
tail && new_pos)
3315 TRACE_(d3d_perf)(
"Waiting for free space. Head %lu, tail %lu, packet size %Iu.\n",
3338 unsigned int spin_count = 0;
3343 TRACE_(d3d_perf)(
"Waiting for queue %u to be empty.\n", queue_id);
3344 while (
cs->queue[queue_id].head != *(
volatile ULONG *)&
cs->queue[queue_id].tail)
3346 TRACE_(d3d_perf)(
"Queue is now empty.\n");
3399 if (pNtWaitForAlertByThreadId)
3407 if (
cs->serialize_commands)
3413 if (
cs->serialize_commands)
3434 ERR(
"Invalid opcode %#x.\n", opcode);
3452 const BYTE *cs_data =
op->list->data;
3455 TRACE(
"Executing command list %p.\n",
op->list);
3470 ERR(
"Invalid opcode %#x.\n", opcode);
3480 unsigned int spin_count = 0;
3483 unsigned int poll = 0;
3486 TRACE(
"Started.\n");
3529 TRACE(
"Stopped.\n");
3554 client->mapped_upload.flags &= ~UPLOAD_BO_RENAME_ON_UNMAP;
3557 client->mapped_upload.flags &= ~UPLOAD_BO_UPLOAD_ON_UNMAP;
3580 if (
cs->serialize_commands)
3581 ERR_(d3d_sync)(
"Forcing serialization of all command streams.\n");
3593 WARN(
"Disabling CSMT, adapter doesn't support fences.\n");
3603 if (!pNtAlertThreadByThreadId)
3613 ERR(
"Failed to create command stream event.\n");
3619 ERR(
"Failed to create command stream present event.\n");
3627 ERR(
"Failed to get wined3d module handle.\n");
3637 ERR(
"Failed to create wined3d command stream thread.\n");
3647 TRACE(
"Created command stream %p.\n",
cs);
3664 ERR(
"Closing present event failed.\n");
3666 ERR(
"Closing event failed.\n");
3688 if (
op->samplers[
i])
3766 if (
op->uavs[
i].view)
3789 if (
op->buffers[
i].buffer)
3810 if (
op->fb.render_targets[
i])
3813 if (
op->fb.depth_stencil)
3830 if (
op->parameters.indirect)
3839 if (
op->parameters.indirect)
3861 if (
op->outputs[
i].buffer)
3874 if (
op->streams[
i].buffer)
3894 if (
op->src_resource)
3937 if (
op->samplers[
i])
4015 if (
op->uavs[
i].view)
4038 if (
op->buffers[
i].buffer)
4059 if (
op->fb.render_targets[
i])
4062 if (
op->fb.depth_stencil)
4079 if (
op->parameters.indirect)
4088 if (
op->parameters.indirect)
4110 if (
op->outputs[
i].buffer)
4123 if (
op->streams[
i].buffer)
4143 if (
op->src_resource)
4209 size_t header_size, packet_size;
4216 packet_size = (packet_size + header_size - 1) & ~(header_size - 1);
4222 TRACE(
"size was %Iu, adding %Iu\n", (
size_t)deferred->
data_size, packet_size);
4223 packet->size = packet_size - header_size;
4240 ERR(
"Ignoring finish() on a deferred context.\n");
4275 WARN(
"Flags %#x are not valid on a deferred context.\n",
flags);
4304 upload->
bo =
addr.buffer_object;
4312 upload->
map_ptr +=
addr.buffer_object->memory_offset;
4321 ERR(
"Failed to create upload heap.\n");
4362 if ((
bo->addr.buffer_object = upload->
bo))
4390 ERR(
"Failed to reserve memory.\n");
4450 if (!(
object =
calloc(1,
sizeof(*
object))))
4460 object->c.device =
device;
4466 TRACE(
"Created deferred context %p.\n",
object);
4509 while (offset < deferred->data_size)
4544 memset(
object, 0,
sizeof(*
object));
4545 object->refcount = 1;
4546 object->device = deferred->
c.device;
4548 object->resources =
memory;
4554 object->uploads =
memory;
4560 object->command_lists =
memory;
4567 object->queries =
memory;
4574 object->data_size = deferred->
data_size;
4593 TRACE(
"Created command list %p.\n",
object);
4610 for (
i = 0;
i <
list->upload_count; ++
i)
4614 if ((bo =
list->uploads[
i].bo))
4630 if (
list->upload_heap)
4658 TRACE(
"%p decreasing refcount to %u.\n",
list, refcount);
4662 for (
i = 0;
i <
list->command_list_count; ++
i)
4664 for (
i = 0;
i <
list->resource_count; ++
i)
4666 for (
i = 0;
i <
list->upload_count; ++
i)
4668 for (
i = 0;
i <
list->query_count; ++
i)
4672 while (offset < list->data_size)
HRESULT WINAPI DECLSPEC_HOTPATCH SetThreadDescription(_In_ HANDLE hThread, _In_ PCWSTR lpThreadDescription)
struct outqueuenode * tail
struct outqueuenode * head
#define InterlockedIncrement
#define InterlockedExchange
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static void wined3d_cs_exec_unload_resource(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_reference_resource(struct wined3d_device_context *context, struct wined3d_resource *resource)
static bool wined3d_deferred_context_unmap_upload_bo(struct wined3d_device_context *context, struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_box *box, struct upload_bo *bo)
void wined3d_device_context_emit_set_light(struct wined3d_device_context *context, const struct wined3d_light_info *light)
void wined3d_device_context_emit_set_shader_resource_views(struct wined3d_device_context *context, enum wined3d_shader_type type, unsigned int start_idx, unsigned int count, struct wined3d_shader_resource_view *const *views)
ULONG CDECL wined3d_command_list_incref(struct wined3d_command_list *list)
void wined3d_cs_destroy(struct wined3d_cs *cs)
static const struct push_constant_info wined3d_cs_push_constant_info[]
static void wined3d_device_context_submit(struct wined3d_device_context *context, enum wined3d_cs_queue_id queue_id)
static BOOL wined3d_cs_queue_is_empty(const struct wined3d_cs *cs, const struct wined3d_cs_queue *queue)
static const LARGE_INTEGER * timeout
static DWORD WINAPI wined3d_cs_run(void *ctx)
static void wined3d_cs_exec_clear_sysmem_texture(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_copy_uav_counter(struct wined3d_device_context *context, struct wined3d_buffer *dst_buffer, unsigned int offset, struct wined3d_unordered_access_view *uav)
static void * wined3d_cs_st_require_space(struct wined3d_device_context *context, size_t size, enum wined3d_cs_queue_id queue_id)
static void wined3d_cs_exec_set_texture_state(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_set_constant_buffers(struct wined3d_cs *cs, const void *data)
static void poll_queries(struct wined3d_cs *cs)
static void wined3d_cs_exec_push_constants(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_set_vertex_declaration(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_preload_resource(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_push_constants(struct wined3d_device_context *context, enum wined3d_push_constants type, uint32_t update_mask, unsigned int start_idx, unsigned int count, const void *constants)
static void invalidate_client_address(struct wined3d_resource *resource)
static void wined3d_cs_mt_finish(struct wined3d_device_context *context, enum wined3d_cs_queue_id queue_id)
static bool prepare_push_constant_buffer(struct wined3d_device_context *context, enum wined3d_push_constants type)
static void wined3d_device_context_finish(struct wined3d_device_context *context, enum wined3d_cs_queue_id queue_id)
static void wined3d_cs_queue_submit(struct wined3d_cs_queue *queue, struct wined3d_cs *cs)
@ WINED3D_CS_OP_SET_SAMPLERS
@ WINED3D_CS_OP_SET_FEATURE_LEVEL
@ WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW
@ WINED3D_CS_OP_COPY_UAV_COUNTER
@ WINED3D_CS_OP_SET_TEXTURE_STATE
@ WINED3D_CS_OP_ADD_DIRTY_TEXTURE_REGION
@ WINED3D_CS_OP_SET_STREAM_OUTPUTS
@ WINED3D_CS_OP_SET_LIGHT
@ WINED3D_CS_OP_SET_DEPTH_STENCIL_VIEW
@ WINED3D_CS_OP_SET_STREAM_SOURCES
@ WINED3D_CS_OP_SET_INDEX_BUFFER
@ WINED3D_CS_OP_SET_SHADER_RESOURCE_VIEWS
@ WINED3D_CS_OP_SET_VERTEX_DECLARATION
@ WINED3D_CS_OP_SET_CONSTANT_BUFFERS
@ WINED3D_CS_OP_SET_UNORDERED_ACCESS_VIEWS
@ WINED3D_CS_OP_QUERY_ISSUE
@ WINED3D_CS_OP_SET_LIGHT_ENABLE
@ WINED3D_CS_OP_SET_TEXTURE
@ WINED3D_CS_OP_PUSH_CONSTANTS
@ WINED3D_CS_OP_SET_SCISSOR_RECTS
@ WINED3D_CS_OP_UPDATE_SUB_RESOURCE
@ WINED3D_CS_OP_RESET_STATE
@ WINED3D_CS_OP_MAP_BO_ADDRESS
@ WINED3D_CS_OP_PRELOAD_RESOURCE
@ WINED3D_CS_OP_SET_RENDER_STATE
@ WINED3D_CS_OP_SET_RASTERIZER_STATE
@ WINED3D_CS_OP_EXECUTE_COMMAND_LIST
@ WINED3D_CS_OP_BLT_SUB_RESOURCE
@ WINED3D_CS_OP_SET_DEPTH_STENCIL_STATE
@ WINED3D_CS_OP_SET_BLEND_STATE
@ WINED3D_CS_OP_SET_VIEWPORTS
@ WINED3D_CS_OP_SET_CLIP_PLANE
@ WINED3D_CS_OP_SET_PREDICATION
@ WINED3D_CS_OP_SET_DEPTH_BOUNDS
@ WINED3D_CS_OP_GENERATE_MIPMAPS
@ WINED3D_CS_OP_SET_SHADER
@ WINED3D_CS_OP_CLEAR_SYSMEM_TEXTURE
@ WINED3D_CS_OP_SET_RENDERTARGET_VIEWS
@ WINED3D_CS_OP_UNLOAD_RESOURCE
@ WINED3D_CS_OP_SET_COLOR_KEY
@ WINED3D_CS_OP_SET_TRANSFORM
static void wined3d_cs_emit_stop(struct wined3d_cs *cs)
static void wined3d_deferred_context_issue_query(struct wined3d_device_context *context, struct wined3d_query *query, unsigned int flags)
static void wined3d_cs_reference_command_list(struct wined3d_device_context *context, struct wined3d_command_list *list)
static void wined3d_cs_exec_set_samplers(struct wined3d_cs *cs, const void *data)
void CDECL wined3d_device_context_dispatch_indirect(struct wined3d_device_context *context, struct wined3d_buffer *buffer, unsigned int offset)
static void wined3d_command_list_destroy_object(void *object)
void wined3d_device_context_emit_set_unordered_access_views(struct wined3d_device_context *context, enum wined3d_pipeline pipeline, unsigned int start_idx, unsigned int count, struct wined3d_unordered_access_view *const *views, const unsigned int *initial_counts)
static void wined3d_device_context_reference_resource(struct wined3d_device_context *context, struct wined3d_resource *resource)
static void wined3d_cs_exec_map(struct wined3d_cs *cs, const void *data)
void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *swapchain, const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override, unsigned int swap_interval, uint32_t flags)
HRESULT CDECL wined3d_device_context_clear_sysmem_texture(struct wined3d_device_context *context, struct wined3d_texture *texture, unsigned int sub_resource_idx, const RECT *rect, unsigned int flags, const struct wined3d_color *color)
static void wined3d_deferred_context_flush(struct wined3d_device_context *context)
static void * wined3d_deferred_context_require_space(struct wined3d_device_context *context, size_t size, enum wined3d_cs_queue_id queue_id)
static void wined3d_device_context_upload_bo(struct wined3d_device_context *context, struct wined3d_resource *resource, unsigned int sub_resource_idx, const struct wined3d_box *box, const struct upload_bo *bo, unsigned int row_pitch, unsigned int slice_pitch)
static void wined3d_cs_exec_set_render_state(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_set_scissor_rects(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_set_viewports(struct wined3d_cs *cs, const void *data)
void CDECL wined3d_deferred_context_destroy(struct wined3d_device_context *context)
static void * wined3d_cs_queue_require_space(struct wined3d_cs_queue *queue, size_t size, struct wined3d_cs *cs)
void CDECL wined3d_device_context_draw_indirect(struct wined3d_device_context *context, struct wined3d_buffer *buffer, unsigned int offset, bool indexed)
static void wined3d_cs_exec_set_predication(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_command_lock(const struct wined3d_cs *cs)
static void discard_client_address(struct wined3d_resource *resource)
static const struct wined3d_device_context_ops wined3d_deferred_context_ops
void wined3d_device_context_emit_generate_mipmaps(struct wined3d_device_context *context, struct wined3d_shader_resource_view *view)
static void wined3d_cs_wait_event(struct wined3d_cs *cs)
static void wined3d_cs_exec_set_depth_stencil_view(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_issue_query(struct wined3d_device_context *context, struct wined3d_query *query, unsigned int flags)
static void wined3d_cs_exec_set_color_key(struct wined3d_cs *cs, const void *data)
static void wined3d_device_context_emit_push_constants(struct wined3d_device_context *context, enum wined3d_push_constants type, uint32_t update_mask, unsigned int start_idx, unsigned int count)
static void wined3d_cs_exec_flush(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_set_light_enable(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_nop(struct wined3d_cs *cs, const void *data)
static bool texture_binding_might_invalidate_ps(struct wined3d_shader_resource_view *view, struct wined3d_shader_resource_view *prev, const struct wined3d_d3d_info *d3d_info)
static void wined3d_cs_st_finish(struct wined3d_device_context *context, enum wined3d_cs_queue_id queue_id)
static void wined3d_cs_exec_draw(struct wined3d_cs *cs, const void *data)
static void * wined3d_cs_mt_require_space(struct wined3d_device_context *context, size_t size, enum wined3d_cs_queue_id queue_id)
static bool wined3d_cs_unmap_upload_bo(struct wined3d_device_context *context, struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_box *box, struct upload_bo *upload_bo)
void wined3d_device_context_emit_set_rendertarget_views(struct wined3d_device_context *context, unsigned int start_idx, unsigned int count, struct wined3d_rendertarget_view *const *views)
void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource)
static void wined3d_cs_exec_set_rendertarget_views(struct wined3d_cs *cs, const void *data)
static void reference_compute_pipeline_resources(struct wined3d_device_context *context)
static void wined3d_cs_exec_add_dirty_texture_region(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_set_vertex_declaration(struct wined3d_device_context *context, struct wined3d_vertex_declaration *declaration)
static bool wined3d_bo_address_is_null(struct wined3d_const_bo_address *addr)
void wined3d_device_context_set_depth_bounds(struct wined3d_device_context *context, bool enable, float min_depth, float max_depth)
static void reference_graphics_pipeline_resources(struct wined3d_device_context *context, BOOL indexed, const struct wined3d_d3d_info *d3d_info)
static void wined3d_cs_exec_set_index_buffer(struct wined3d_cs *cs, const void *data)
void wined3d_cs_emit_add_dirty_texture_region(struct wined3d_cs *cs, struct wined3d_texture *texture, unsigned int layer)
void CDECL wined3d_device_context_dispatch(struct wined3d_device_context *context, unsigned int group_count_x, unsigned int group_count_y, unsigned int group_count_z)
static void wined3d_cs_command_unlock(const struct wined3d_cs *cs)
#define WINED3D_INITIAL_CS_SIZE
static void wined3d_cs_exec_set_shader(struct wined3d_cs *cs, const void *data)
static void reference_unordered_access_resources(struct wined3d_device_context *context, const struct wined3d_shader *shader, struct wined3d_unordered_access_view *const *views)
static void wined3d_cs_exec_set_shader_resource_views(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_clear_uav(struct wined3d_device_context *context, struct wined3d_unordered_access_view *view, const struct wined3d_uvec4 *clear_value, bool fp)
static bool wined3d_cs_execute_next(struct wined3d_cs *cs, struct wined3d_cs_queue *queue)
static void wined3d_cs_exec_set_stream_sources(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_blt_sub_resource(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_update_sub_resource(struct wined3d_device_context *context, struct wined3d_resource *resource, unsigned int sub_resource_idx, const struct wined3d_box *box, const void *data, unsigned int row_pitch, unsigned int slice_pitch)
void wined3d_device_context_emit_set_texture_state(struct wined3d_device_context *context, unsigned int stage, enum wined3d_texture_stage_state state, unsigned int value)
static const char * debug_cs_op(enum wined3d_cs_op op)
static void wined3d_cs_exec_set_unordered_access_views(struct wined3d_cs *cs, const void *data)
static void reference_shader_resources(struct wined3d_device_context *context, unsigned int shader_mask)
static void wined3d_cs_exec_clear_unordered_access_view(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_copy_uav_counter(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_set_stream_outputs(struct wined3d_device_context *context, const struct wined3d_stream_output outputs[WINED3D_MAX_STREAM_OUTPUT_BUFFERS])
static void get_map_pitch(const struct wined3d_format *format, const struct wined3d_box *box, struct wined3d_map_desc *map_desc, size_t *size)
static const struct wined3d_device_context_ops wined3d_cs_st_ops
static void wined3d_cs_exec_reset_state(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_emit_callback(struct wined3d_cs *cs, void(*callback)(void *object), void *object)
void wined3d_device_context_emit_set_clip_plane(struct wined3d_device_context *context, unsigned int plane_idx, const struct wined3d_vec4 *plane)
void wined3d_device_context_emit_set_feature_level(struct wined3d_device_context *context, enum wined3d_feature_level level)
static void wined3d_cs_exec_set_clip_plane(struct wined3d_cs *cs, const void *data)
void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource)
void wined3d_device_context_emit_draw(struct wined3d_device_context *context, enum wined3d_primitive_type primitive_type, unsigned int patch_vertex_count, int base_vertex_idx, unsigned int start_idx, unsigned int index_count, unsigned int start_instance, unsigned int instance_count, bool indexed)
void wined3d_device_context_emit_set_transform(struct wined3d_device_context *context, enum wined3d_transform_state state, const struct wined3d_matrix *matrix)
void wined3d_device_context_emit_set_rasterizer_state(struct wined3d_device_context *context, struct wined3d_rasterizer_state *rasterizer_state)
void wined3d_device_context_emit_set_depth_stencil_state(struct wined3d_device_context *context, struct wined3d_depth_stencil_state *state, unsigned int stencil_ref)
static struct wined3d_cs_packet * wined3d_next_cs_packet(const uint8_t *data, SIZE_T *offset, SIZE_T mask)
static void wined3d_cs_exec_unmap(struct wined3d_cs *cs, const void *data)
void CDECL wined3d_device_context_flush_mapped_buffer(struct wined3d_device_context *context, struct wined3d_buffer *buffer)
static void wined3d_cs_exec_set_rasterizer_state(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_set_texture(struct wined3d_cs *cs, const void *data)
static void wined3d_deferred_context_finish(struct wined3d_device_context *context, enum wined3d_cs_queue_id queue_id)
static void wined3d_cs_exec_set_feature_level(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_set_render_state(struct wined3d_device_context *context, enum wined3d_render_state state, unsigned int value)
static void wined3d_cs_exec_callback(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_execute_command_list(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_blt_sub_resource(struct wined3d_device_context *context, struct wined3d_resource *dst_resource, unsigned int dst_sub_resource_idx, const struct wined3d_box *dst_box, struct wined3d_resource *src_resource, unsigned int src_sub_resource_idx, const struct wined3d_box *src_box, unsigned int flags, const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter)
void wined3d_cs_destroy_object(struct wined3d_cs *cs, void(*callback)(void *object), void *object)
static void wined3d_cs_mt_submit(struct wined3d_device_context *context, enum wined3d_cs_queue_id queue_id)
static void wined3d_deferred_context_submit(struct wined3d_device_context *context, enum wined3d_cs_queue_id queue_id)
static void wined3d_cs_exec_clear(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_set_light_enable(struct wined3d_device_context *context, unsigned int idx, BOOL enable)
void wined3d_device_context_emit_set_stream_sources(struct wined3d_device_context *context, unsigned int start_idx, unsigned int count, const struct wined3d_stream_state *streams)
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects, uint32_t flags, const struct wined3d_color *color, float depth, DWORD stencil)
void wined3d_device_context_emit_set_index_buffer(struct wined3d_device_context *context, struct wined3d_buffer *buffer, enum wined3d_format_id format_id, unsigned int offset)
void wined3d_device_context_emit_set_constant_buffers(struct wined3d_device_context *context, enum wined3d_shader_type type, unsigned int start_idx, unsigned int count, const struct wined3d_constant_buffer_state *buffers)
static void wined3d_cs_exec_set_depth_bounds(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_packet_decref_objects(const struct wined3d_cs_packet *packet)
void wined3d_device_context_emit_set_texture(struct wined3d_device_context *context, enum wined3d_shader_type shader_type, unsigned int bind_index, struct wined3d_shader_resource_view *view)
static void wined3d_cs_exec_update_sub_resource(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_set_viewports(struct wined3d_device_context *context, unsigned int viewport_count, const struct wined3d_viewport *viewports)
void wined3d_device_context_emit_clear_rendertarget_view(struct wined3d_device_context *context, struct wined3d_rendertarget_view *view, const RECT *rect, unsigned int flags, const struct wined3d_color *color, float depth, unsigned int stencil)
static struct wined3d_cs * wined3d_cs_from_context(struct wined3d_device_context *context)
static void wined3d_cs_exec_dispatch(struct wined3d_cs *cs, const void *data)
HRESULT wined3d_device_context_emit_unmap(struct wined3d_device_context *context, struct wined3d_resource *resource, unsigned int sub_resource_idx)
void wined3d_device_context_emit_set_predication(struct wined3d_device_context *context, struct wined3d_query *predicate, BOOL value)
void wined3d_device_context_emit_reset_state(struct wined3d_device_context *context, bool invalidate)
static const struct wined3d_device_context_ops wined3d_cs_mt_ops
void wined3d_cs_init_object(struct wined3d_cs *cs, void(*callback)(void *object), void *object)
static void wined3d_cs_exec_set_stream_outputs(struct wined3d_cs *cs, const void *data)
static struct wined3d_deferred_upload * deferred_context_get_upload(struct wined3d_deferred_context *deferred, struct wined3d_resource *resource, unsigned int sub_resource_idx)
void wined3d_device_context_emit_set_blend_state(struct wined3d_device_context *context, struct wined3d_blend_state *state, const struct wined3d_color *blend_factor, unsigned int sample_mask)
static void * wined3d_device_context_require_space(struct wined3d_device_context *context, size_t size, enum wined3d_cs_queue_id queue_id)
void wined3d_device_context_emit_set_depth_stencil_view(struct wined3d_device_context *context, struct wined3d_rendertarget_view *view)
static bool wined3d_cs_map_upload_bo(struct wined3d_device_context *context, struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, uint32_t flags)
ULONG CDECL wined3d_command_list_decref(struct wined3d_command_list *list)
static void wined3d_cs_exec_generate_mipmaps(struct wined3d_cs *cs, const void *data)
static bool wined3d_deferred_context_map_upload_bo(struct wined3d_device_context *context, struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, uint32_t flags)
static void wined3d_cs_exec_set_transform(struct wined3d_cs *cs, const void *data)
HRESULT CDECL wined3d_deferred_context_create(struct wined3d_device *device, struct wined3d_device_context **context)
static void wined3d_cs_exec_set_depth_stencil_state(struct wined3d_cs *cs, const void *data)
static void wined3d_deferred_context_reference_resource(struct wined3d_device_context *context, struct wined3d_resource *resource)
struct wined3d_cs * wined3d_cs_create(struct wined3d_device *device, const enum wined3d_feature_level *levels, unsigned int level_count)
HRESULT wined3d_device_context_emit_map(struct wined3d_device_context *context, struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, unsigned int flags)
static void wined3d_cs_packet_incref_objects(struct wined3d_cs_packet *packet)
static void wined3d_cs_st_submit(struct wined3d_device_context *context, enum wined3d_cs_queue_id queue_id)
static void(*const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_set_light(struct wined3d_cs *cs, const void *data)
static void wined3d_cs_exec_present(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_set_shader(struct wined3d_device_context *context, enum wined3d_shader_type type, struct wined3d_shader *shader)
static void wined3d_cs_exec_map_bo_address(struct wined3d_cs *cs, const void *data)
static struct wined3d_deferred_context * wined3d_deferred_context_from_context(struct wined3d_device_context *context)
static void wined3d_deferred_context_reference_command_list(struct wined3d_device_context *context, struct wined3d_command_list *list)
static void wined3d_cs_exec_set_blend_state(struct wined3d_cs *cs, const void *data)
HRESULT CDECL wined3d_deferred_context_record_command_list(struct wined3d_device_context *context, bool restore, struct wined3d_command_list **list)
static void wined3d_cs_exec_query_issue(struct wined3d_cs *cs, const void *data)
void wined3d_device_context_emit_set_scissor_rects(struct wined3d_device_context *context, unsigned int rect_count, const RECT *rects)
void wined3d_device_context_emit_set_samplers(struct wined3d_device_context *context, enum wined3d_shader_type type, unsigned int start_idx, unsigned int count, struct wined3d_sampler *const *samplers)
#define WINED3D_TO_STR(type)
void wined3d_device_context_emit_execute_command_list(struct wined3d_device_context *context, struct wined3d_command_list *list, bool restore_state)
void wined3d_cs_emit_set_color_key(struct wined3d_cs *cs, struct wined3d_texture *texture, WORD flags, const struct wined3d_color_key *color_key)
void state_init(void *ipp)
static const struct @282 state_table[]
void wined3d_buffer_update_sub_resource(struct wined3d_buffer *buffer, struct wined3d_context *context, const struct upload_bo *upload_bo, unsigned int offset, unsigned int size)
HRESULT CDECL wined3d_buffer_create(struct wined3d_device *device, const struct wined3d_buffer_desc *desc, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_buffer **buffer)
ULONG CDECL wined3d_buffer_incref(struct wined3d_buffer *buffer)
ULONG CDECL wined3d_buffer_decref(struct wined3d_buffer *buffer)
void wined3d_buffer_copy(struct wined3d_buffer *dst_buffer, unsigned int dst_offset, struct wined3d_buffer *src_buffer, unsigned int src_offset, unsigned int size)
ULONG CDECL wined3d_blend_state_incref(struct wined3d_blend_state *state)
ULONG CDECL wined3d_depth_stencil_state_decref(struct wined3d_depth_stencil_state *state)
void device_invalidate_state(const struct wined3d_device *device, unsigned int state_id)
ULONG CDECL wined3d_blend_state_decref(struct wined3d_blend_state *state)
ULONG CDECL wined3d_rasterizer_state_incref(struct wined3d_rasterizer_state *state)
ULONG CDECL wined3d_depth_stencil_state_incref(struct wined3d_depth_stencil_state *state)
ULONG CDECL wined3d_rasterizer_state_decref(struct wined3d_rasterizer_state *state)
void CDECL wined3d_device_context_set_state(struct wined3d_device_context *context, struct wined3d_state *state)
void CDECL wined3d_device_context_reset_state(struct wined3d_device_context *context)
ULONG CDECL wined3d_query_incref(struct wined3d_query *query)
ULONG CDECL wined3d_query_decref(struct wined3d_query *query)
HRESULT wined3d_resource_check_box_dimensions(struct wined3d_resource *resource, unsigned int sub_resource_idx, const struct wined3d_box *box)
void * resource_offset_map_pointer(struct wined3d_resource *resource, unsigned int sub_resource_idx, uint8_t *base_memory, const struct wined3d_box *box)
ULONG CDECL wined3d_shader_incref(struct wined3d_shader *shader)
ULONG CDECL wined3d_shader_decref(struct wined3d_shader *shader)
HRESULT texture2d_blt(struct wined3d_texture *dst_texture, unsigned int dst_sub_resource_idx, const struct wined3d_box *dst_box, struct wined3d_texture *src_texture, unsigned int src_sub_resource_idx, const struct wined3d_box *src_box, uint32_t flags, const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter)
void cpu_blitter_clear_texture(struct wined3d_texture *texture, unsigned int sub_resource_idx, const struct wined3d_box *box, const struct wined3d_color *colour)
void wined3d_texture_invalidate_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, uint32_t location)
ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture)
ULONG CDECL wined3d_texture_incref(struct wined3d_texture *texture)
void wined3d_texture_validate_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, uint32_t location)
BOOL wined3d_texture_can_use_pbo(const struct wined3d_texture *texture, const struct wined3d_d3d_info *d3d_info)
BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, unsigned int location)
HRESULT CDECL wined3d_device_context_blt(struct wined3d_device_context *context, struct wined3d_texture *dst_texture, unsigned int dst_sub_resource_idx, const RECT *dst_rect, struct wined3d_texture *src_texture, unsigned int src_sub_resource_idx, const RECT *src_rect, unsigned int flags, const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter)
void wined3d_texture_update_sub_resource(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, const struct upload_bo *upload_bo, const struct wined3d_box *box, unsigned int row_pitch, unsigned int slice_pitch)
BOOL wined3d_texture_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, uint32_t location)
void wined3d_texture_get_bo_address(const struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_bo_address *data, uint32_t location)
void CDECL wined3d_texture_get_pitch(const struct wined3d_texture *texture, unsigned int level, unsigned int *row_pitch, unsigned int *slice_pitch)
const char * debug_box(const struct wined3d_box *box)
const char * wined3d_debug_location(uint32_t location)
const char * debug_const_bo_address(const struct wined3d_const_bo_address *address)
BOOL wined3d_clip_blit(const RECT *clip_rect, RECT *clipped, RECT *other)
const char * debug_d3dresourcetype(enum wined3d_resource_type resource_type)
void wined3d_format_copy_data(const struct wined3d_format *format, const uint8_t *src, unsigned int src_row_pitch, unsigned int src_slice_pitch, uint8_t *dst, unsigned int dst_row_pitch, unsigned int dst_slice_pitch, unsigned int w, unsigned int h, unsigned int d)
BOOL wined3d_array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, SIZE_T size)
const char * debug_bo_address(const struct wined3d_bo_address *address)
void wined3d_format_calculate_pitch(const struct wined3d_format *format, unsigned int alignment, unsigned int width, unsigned int height, unsigned int *row_pitch, unsigned int *slice_pitch)
const char * debug_color(const struct wined3d_color *color)
void wined3d_unordered_access_view_copy_counter(struct wined3d_unordered_access_view *view, struct wined3d_buffer *buffer, unsigned int offset, struct wined3d_context *context)
void wined3d_rendertarget_view_validate_location(struct wined3d_rendertarget_view *view, uint32_t location)
ULONG CDECL wined3d_unordered_access_view_decref(struct wined3d_unordered_access_view *view)
ULONG CDECL wined3d_shader_resource_view_incref(struct wined3d_shader_resource_view *view)
ULONG CDECL wined3d_rendertarget_view_incref(struct wined3d_rendertarget_view *view)
ULONG CDECL wined3d_unordered_access_view_incref(struct wined3d_unordered_access_view *view)
ULONG CDECL wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view *view)
void wined3d_unordered_access_view_set_counter(struct wined3d_unordered_access_view *view, unsigned int value)
ULONG CDECL wined3d_shader_resource_view_decref(struct wined3d_shader_resource_view *view)
const char * wine_dbg_sprintf(const char *format,...)
#define GetProcAddress(x, y)
#define HeapFree(x, y, z)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
BOOL WINAPI GetModuleHandleExW(IN DWORD dwFlags, IN LPCWSTR lpwModuleName OPTIONAL, OUT HMODULE *phModule)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
VOID WINAPI FreeLibraryAndExitThread(HMODULE hLibModule, DWORD dwExitCode)
BOOL WINAPI QueryPerformanceFrequency(OUT PLARGE_INTEGER lpFrequency)
BOOL WINAPI QueryPerformanceCounter(OUT PLARGE_INTEGER lpPerformanceCount)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
ULONG WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
GLint GLint GLsizei GLsizei GLsizei depth
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei width
GLboolean GLboolean GLboolean b
GLenum const GLvoid * addr
GLenum GLuint GLint GLint layer
GLint GLfloat GLint stencil
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum GLint const GLfloat GLenum GLint const GLushort GLint GLint GLsizei GLsizei GLenum GLsizei GLsizei GLenum GLenum const GLvoid GLenum plane
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum light
HANDLE WINAPI HeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize)
BOOL WINAPI HeapDestroy(HANDLE hHeap)
#define InterlockedCompareExchange
#define location(file, line)
#define memcpy(s1, s2, n)
static IPrintDialogCallback callback
D3D11_SHADER_VARIABLE_DESC desc
static char memory[1024 *256]
NTSYSAPI LOGICAL NTAPI RtlIsCriticalSectionLockedByThread(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI NtWaitForSingleObject(IN HANDLE hObject, IN BOOLEAN bAlertable, IN PLARGE_INTEGER Timeout)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
BOOL WINAPI IntersectRect(_Out_ LPRECT, _In_ LPCRECT, _In_ LPCRECT)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
for(i=0;i< sizeof(testsuite)/sizeof(testsuite[0]);++i) ok(call_test(testsuite[i].func)
ULONG CDECL wined3d_sampler_incref(struct wined3d_sampler *sampler)
ULONG CDECL wined3d_sampler_decref(struct wined3d_sampler *sampler)
#define offsetof(TYPE, MEMBER)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
static int rb_put(struct rb_tree *tree, const void *key, struct rb_entry *entry)
enum wined3d_shader_type shader_type
unsigned int client_map_count
struct wined3d_resource resource
LONG * upload_heap_refcount
struct wined3d_resource ** resources
struct wined3d_deferred_upload * uploads
struct wined3d_deferred_query_issue * queries
struct wined3d_command_list ** command_lists
SIZE_T command_list_count
struct wined3d_device * device
unsigned int sub_resource_idx
enum wined3d_cs_op opcode
struct wined3d_texture * texture
struct wined3d_resource * dst_resource
enum wined3d_cs_op opcode
struct wined3d_box src_box
struct wined3d_resource * src_resource
unsigned int src_sub_resource_idx
struct wined3d_box dst_box
enum wined3d_texture_filter_type filter
unsigned int dst_sub_resource_idx
enum wined3d_cs_op opcode
void(* callback)(void *object)
enum wined3d_cs_op opcode
unsigned int sub_resource_idx
struct wined3d_texture * texture
struct wined3d_unordered_access_view * view
enum wined3d_cs_op opcode
struct wined3d_uvec4 clear_value
struct wined3d_fb_state fb
enum wined3d_cs_op opcode
struct wined3d_buffer * buffer
struct wined3d_unordered_access_view * view
enum wined3d_cs_op opcode
struct wined3d_dispatch_parameters parameters
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
enum wined3d_primitive_type primitive_type
unsigned int patch_vertex_count
struct wined3d_draw_parameters parameters
struct wined3d_command_list * list
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
struct wined3d_shader_resource_view * view
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
unsigned int sub_resource_idx
struct wined3d_resource * resource
const struct wined3d_box * box
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
struct wined3d_resource * resource
unsigned int swap_interval
enum wined3d_cs_op opcode
struct wined3d_swapchain * swapchain
enum wined3d_push_constants type
enum wined3d_cs_op opcode
struct wined3d_query * query
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
struct wined3d_color factor
struct wined3d_blend_state * state
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
struct wined3d_vec4 plane
struct wined3d_color_key color_key
enum wined3d_cs_op opcode
struct wined3d_texture * texture
enum wined3d_cs_op opcode
enum wined3d_shader_type type
enum wined3d_cs_op opcode
struct wined3d_depth_stencil_state * state
enum wined3d_cs_op opcode
struct wined3d_rendertarget_view * view
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
enum wined3d_feature_level level
enum wined3d_format_id format_id
enum wined3d_cs_op opcode
struct wined3d_buffer * buffer
enum wined3d_cs_op opcode
struct wined3d_light_info light
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
struct wined3d_query * predicate
enum wined3d_cs_op opcode
struct wined3d_rasterizer_state * state
enum wined3d_render_state state
enum wined3d_cs_op opcode
struct wined3d_rendertarget_view * views[1]
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
enum wined3d_shader_type type
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
enum wined3d_shader_type type
struct wined3d_shader_resource_view * views[1]
struct wined3d_shader * shader
enum wined3d_cs_op opcode
enum wined3d_shader_type type
struct wined3d_stream_output outputs[WINED3D_MAX_STREAM_OUTPUT_BUFFERS]
enum wined3d_cs_op opcode
struct wined3d_stream_state streams[1]
enum wined3d_cs_op opcode
enum wined3d_texture_stage_state state
enum wined3d_cs_op opcode
enum wined3d_shader_type shader_type
struct wined3d_shader_resource_view * view
enum wined3d_cs_op opcode
struct wined3d_cs_set_unordered_access_views::@333 uavs[1]
struct wined3d_unordered_access_view * view
enum wined3d_pipeline pipeline
unsigned int initial_count
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
struct wined3d_vertex_declaration * declaration
struct wined3d_viewport viewports[1]
enum wined3d_cs_op opcode
unsigned int viewport_count
enum wined3d_cs_op opcode
enum wined3d_cs_op opcode
struct wined3d_resource * resource
struct wined3d_resource * resource
unsigned int sub_resource_idx
enum wined3d_cs_op opcode
unsigned int sub_resource_idx
enum wined3d_cs_op opcode
struct wined3d_resource * resource
struct wined3d_d3d_limits limits
uint32_t draw_base_vertex_offset
SIZE_T command_list_count
struct wined3d_deferred_upload * uploads
SIZE_T command_lists_capacity
SIZE_T resources_capacity
struct wined3d_resource ** resources
struct wined3d_deferred_query_issue * queries
struct wined3d_command_list ** command_lists
LONG * upload_heap_refcount
struct wined3d_device_context c
struct wined3d_query * query
unsigned int sub_resource_idx
struct wined3d_resource * resource
unsigned int OriginalIndex
struct wined3d_light_constants constants
struct wined3d_light OriginalParms
struct list poll_list_entry
struct wined3d_resource * resource
const struct wined3d_format * format
unsigned int sub_resource_idx
unsigned int cs_multithreaded
struct wined3d_resource * resource
unsigned int representative
enum wined3d_primitive_type primitive_type
unsigned int patch_vertex_count
struct wined3d_color blend_factor
struct wined3d_texture ** back_buffers
const struct wined3d_swapchain_ops * swapchain_ops
struct wined3d_swapchain_state state
struct wined3d_device * device
const struct wined3d_texture_ops * texture_ops
struct wined3d_swapchain * swapchain
struct wined3d_resource resource
struct wined3d_resource * resource
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
#define FIELD_OFFSET(t, f)
#define CONTAINING_RECORD(address, type, field)
HANDLE WINAPI GetCurrentThread(void)
DWORD WINAPI GetCurrentThreadId(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
const struct wined3d_parent_ops wined3d_null_parent_ops
void state_cleanup(struct wined3d_state *state)
void CDECL wined3d_state_destroy(struct wined3d_state *state)
HRESULT CDECL wined3d_state_create(struct wined3d_device *device, const enum wined3d_feature_level *levels, unsigned int level_count, struct wined3d_state **state)
bool wined3d_light_state_enable_light(struct wined3d_light_state *state, const struct wined3d_d3d_info *d3d_info, struct wined3d_light_info *light_info, BOOL enable)
struct wined3d_light_info * wined3d_light_state_get_light(const struct wined3d_light_state *state, unsigned int idx)
void CDECL wined3d_swapchain_set_window(struct wined3d_swapchain *swapchain, HWND window)
#define WINED3DISSUE_BEGIN
#define WINED3D_CKEY_DST_BLT
#define WINED3DCLEAR_TARGET
@ WINED3D_RS_SRGBWRITEENABLE
@ WINED3D_RS_FOGTABLEMODE
#define WINED3D_BLT_ALPHA_TEST
#define WINED3D_CKEY_SRC_OVERLAY
@ WINED3D_SWAP_EFFECT_FLIP_DISCARD
@ WINED3D_SWAP_EFFECT_DISCARD
#define WINED3DUSAGE_LEGACY_CUBEMAP
#define WINED3D_MAX_PS_CONSTS_F
#define WINED3D_MAX_STREAM_OUTPUT_BUFFERS
#define WINED3D_RESOURCE_ACCESS_GPU
#define WINED3D_BLT_SRC_CKEY
#define WINED3D_RESOURCE_ACCESS_CPU
@ WINED3D_RTYPE_TEXTURE_3D
#define WINED3D_MAX_VS_CONSTS_F
wined3d_texture_filter_type
wined3d_texture_stage_state
#define WINED3D_CKEY_SRC_BLT
@ WINED3D_PIPELINE_COMPUTE
@ WINED3D_PIPELINE_GRAPHICS
static void wined3d_box_set(struct wined3d_box *box, unsigned int left, unsigned int top, unsigned int right, unsigned int bottom, unsigned int front, unsigned int back)
#define WINED3DCLEAR_STENCIL
#define WINED3DCLEAR_SYNCHRONOUS
#define WINED3D_RESOURCE_ACCESS_MAP_R
#define WINED3D_MAP_DISCARD
#define WINED3D_MAP_WRITE
#define WINED3D_BLT_SYNCHRONOUS
#define WINED3D_MAX_CONSTS_B
#define WINED3DCLEAR_ZBUFFER
#define WINED3D_CKEY_DST_OVERLAY
@ WINED3D_SHADER_TYPE_PIXEL
@ WINED3D_SHADER_TYPE_GEOMETRY
@ WINED3D_SHADER_TYPE_COMPUTE
@ WINED3D_SHADER_TYPE_VERTEX
@ WINED3D_SHADER_TYPE_COUNT
#define WINED3D_MAX_CONSTS_I
#define WINED3D_MAP_NOOVERWRITE
#define WINED3D_SWAPCHAIN_DISCARD_DEPTHSTENCIL
#define WINED3D_MAX_FFP_TEXTURES
#define WINED3D_BIND_CONSTANT_BUFFER
#define WINED3D_SRGB_READ_WRITE_CONTROL
#define WINED3D_RESOURCE_ACCESS_MAP_W
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)
CRITICAL_SECTION wined3d_command_cs
#define STATE_BASEVERTEXINDEX
#define STATE_DEPTH_STENCIL
static unsigned int wined3d_texture_get_level_height(const struct wined3d_texture *texture, unsigned int level)
#define UPLOAD_BO_RENAME_ON_UNMAP
#define STATE_CLIPPLANE(a)
#define STATE_STENCIL_REF
#define STATE_CONSTANT_BUFFER(a)
#define WINED3D_CS_QUEUE_MASK
@ WINED3D_PUSH_CONSTANTS_PS_FFP
@ WINED3D_PUSH_CONSTANTS_PS_B
@ WINED3D_PUSH_CONSTANTS_VS_B
@ WINED3D_PUSH_CONSTANTS_VS_FFP
@ WINED3D_PUSH_CONSTANTS_VS_I
@ WINED3D_PUSH_CONSTANTS_PS_F
@ WINED3D_PUSH_CONSTANTS_PS_I
@ WINED3D_PUSH_CONSTANTS_COUNT
@ WINED3D_PUSH_CONSTANTS_VS_F
#define WINED3D_SHADER_CONST_BASE_VERTEX_ID
static void wined3d_resource_get_sub_resource_map_pitch(struct wined3d_resource *resource, unsigned int sub_resource_idx, unsigned int *row_pitch, unsigned int *slice_pitch)
#define WINED3D_STATE_NO_REF
#define STATE_GRAPHICS_SHADER_RESOURCE_BINDING
#define WINED3D_LOCATION_SYSMEM
static void wined3d_device_bo_map_lock(struct wined3d_device *device)
static void wined3d_cs_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id queue_id)
#define STATE_STREAM_OUTPUT
static void wined3d_device_bo_map_unlock(struct wined3d_device *device)
static void wined3d_not_from_cs(const struct wined3d_cs *cs)
static unsigned int wined3d_texture_get_level_width(const struct wined3d_texture *texture, unsigned int level)
#define WINED3D_FORMAT_CAP_SHADOW
#define WINED3D_CSMT_ENABLE
#define STATE_DEPTH_BOUNDS
#define UPLOAD_BO_FREE_ON_UNMAP
static void wined3d_resource_wait_idle(const struct wined3d_resource *resource)
#define WINED3D_STATE_INIT_DEFAULT
static struct wined3d_texture * wined3d_state_get_ffp_texture(const struct wined3d_state *state, unsigned int idx)
#define WINED3D_CSMT_SERIALIZE
#define WINED3D_LOCATION_BUFFER
#define MAX_UNORDERED_ACCESS_VIEWS
static void wined3d_pause(unsigned int *spin_count)
#define WINED3D_CS_QUEUE_SIZE
static void context_release(struct wined3d_context *context)
#define RESOURCE_ALIGNMENT
static BOOL is_same_fixup(struct color_fixup_desc f1, struct color_fixup_desc f2)
static void wined3d_device_context_unlock(struct wined3d_device_context *context)
static BOOL can_use_texture_swizzle(const struct wined3d_d3d_info *d3d_info, const struct wined3d_format *format)
#define STATE_BLEND_FACTOR
#define WINED3D_FORMAT_CAP_SRGB_WRITE
#define STATE_SAMPLE_MASK
#define STATE_SCISSORRECT
static ULONG wined3d_resource_decref(struct wined3d_resource *resource)
#define CLIENT_BO_DISCARDED
static void wined3d_state_reset(struct wined3d_state *state, const struct wined3d_d3d_info *d3d_info)
#define WINED3D_CS_SPIN_COUNT
#define STATE_COMPUTE_SHADER_RESOURCE_BINDING
#define WINED3D_LOCATION_TEXTURE_RGB
static size_t align(size_t addr, size_t alignment)
static bool wined3d_map_persistent(void)
static void wined3d_resource_reference(struct wined3d_resource *resource)
#define WINED3D_CS_COMMAND_WAIT_WITH_QUERIES_TIMEOUT
#define WINED3D_TEXTURE_DISCARD
static void wined3d_device_context_lock(struct wined3d_device_context *context)
#define WINED3D_CS_QUERY_POLL_INTERVAL
static ULONG wined3d_resource_incref(struct wined3d_resource *resource)
static void wined3d_from_cs(const struct wined3d_cs *cs)
#define WINED3D_LOCATION_DISCARDED
#define STATE_TEXTURESTAGE(stage, num)
static void * wined3d_context_map_bo_address(struct wined3d_context *context, const struct wined3d_bo_address *data, size_t size, uint32_t map_flags)
#define STATE_INDEXBUFFER
#define STATE_UNORDERED_ACCESS_VIEW_BINDING(a)
#define UPLOAD_BO_UPLOAD_ON_UNMAP
static void wined3d_context_destroy_bo(struct wined3d_context *context, struct wined3d_bo *bo)
static struct wined3d_context * context_acquire(struct wined3d_device *device, struct wined3d_texture *texture, unsigned int sub_resource_idx)
@ WINED3D_CS_QUEUE_DEFAULT
#define STATE_FRAMEBUFFER
static struct wined3d_texture * texture_from_resource(struct wined3d_resource *resource)
static struct wined3d_buffer * buffer_from_resource(struct wined3d_resource *resource)
static unsigned int wined3d_texture_get_level_depth(const struct wined3d_texture *texture, unsigned int level)
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList