26#define WINED3D_VIEW_CUBE_ARRAY (WINED3D_VIEW_TEXTURE_CUBE | WINED3D_VIEW_TEXTURE_ARRAY)
40 unsigned int view_flags;
72 if (view_types[
i].texture_target != texture_gl->
target || view_types[
i].view_flags !=
flags)
74 if (gl_info->
supported[view_types[
i].extension])
75 return view_types[
i].view_target;
77 FIXME(
"Extension %#x not supported.\n", view_types[
i].extension);
80 FIXME(
"Unhandled view flags %#x for texture target %#x.\n",
flags, texture_gl->
target);
113 if (
buffer->structure_byte_stride)
139 unsigned int depth_or_layer_count;
144 WARN(
"Trying to create incompatible view for non typeless format %s.\n",
152 depth_or_layer_count =
texture->layer_count;
154 if (!
desc->u.texture.level_count
155 || (mip_slice &&
desc->u.texture.level_count != 1)
157 || !
desc->u.texture.layer_count
170 unsigned int level_idx, layer_idx, layer_count;
177 view->target = view_target;
186 FIXME(
"OpenGL implementation does not support texture views.\n");
193 level_idx =
desc->u.texture.level_idx;
194 layer_idx =
desc->u.texture.layer_idx;
195 layer_count =
desc->u.texture.layer_count;
199 FIXME(
"Depth slice (%u-%u) not supported.\n", layer_idx, layer_count);
204 gl_info->
gl_ops.gl.p_glGenTextures(1, &
view->name);
206 level_idx,
desc->u.texture.level_count, layer_idx, layer_count));
216 FIXME(
"OpenGL implementation does not support stencil texturing.\n");
253 FIXME(
"OpenGL implementation does not support buffer textures.\n");
259 offset += bo_gl->
b.buffer_offset;
261 if ((
offset & (gl_info->
limits.texture_buffer_offset_alignment - 1)))
263 FIXME(
"Buffer offset %u is not %u byte aligned.\n",
264 offset, gl_info->
limits.texture_buffer_offset_alignment);
271 gl_info->
gl_ops.gl.p_glGenTextures(1, &
view->name);
282 FIXME(
"OpenGL implementation does not support ARB_texture_buffer_range.\n");
320 unsigned int i, sub_resource_idx;
336 sub_resource_idx =
desc->u.texture.layer_idx *
texture->level_count +
desc->u.texture.level_idx;
337 for (
i = 0;
i <
desc->u.texture.layer_count; ++
i, sub_resource_idx +=
texture->level_count)
344 unsigned int i, sub_resource_idx;
360 sub_resource_idx =
desc->u.texture.layer_idx *
texture->level_count +
desc->u.texture.level_idx;
361 for (
i = 0;
i <
desc->u.texture.layer_count; ++
i, sub_resource_idx +=
texture->level_count)
369 TRACE(
"%p increasing refcount to %u.\n",
view, refcount);
376 view->parent_ops->wined3d_object_destroyed(
view->parent);
383 TRACE(
"%p decreasing refcount to %u.\n",
view, refcount);
392 resource->device->adapter->adapter_ops->adapter_destroy_rendertarget_view(
view);
418 return texture->sub_resources[
view->sub_resource_idx].parent;
424 TRACE(
"view %p, parent %p, parent_ops %p.\n",
view,
parent, parent_ops);
427 view->parent_ops = parent_ops;
434 return view->resource;
460 unsigned int level_idx =
view->sub_resource_idx %
texture->level_count;
473 unsigned int i, sub_resource_idx, layer_count;
483 sub_resource_idx =
view->sub_resource_idx;
498 unsigned int i, sub_resource_idx, layer_count;
508 sub_resource_idx =
view->sub_resource_idx;
523 unsigned int i, sub_resource_idx, layer_count;
531 sub_resource_idx =
view->sub_resource_idx;
534 ret &=
texture->sub_resources[sub_resource_idx].locations;
537 WARN(
"View %p (texture %p) layers do not have a location in common.\n",
view,
texture);
562 TRACE(
"view_gl %p.\n", view_gl);
571 unsigned int depth_or_layer_count;
576 depth_or_layer_count = texture_gl->
t.layer_count;
578 if (
resource->format->id != view_gl->
v.format->id
579 || (view_gl->
v.layer_count != 1 && view_gl->
v.layer_count != depth_or_layer_count))
581 GLenum resource_class, view_class;
585 if (resource_class != view_class)
587 FIXME(
"Render target view not supported, resource format %s, view format %s.\n",
591 if (texture_gl->
t.swapchain && texture_gl->
t.swapchain->state.desc.backbuffer_count > 1)
593 FIXME(
"Swapchain views not supported.\n");
610 view->parent_ops = parent_ops;
617 allow_srgb_toggle =
TRUE;
621 view->format_attrs =
view->format->attrs;
627 view->sub_resource_idx = 0;
628 view->layer_count = 1;
636 view->sub_resource_idx =
desc->u.texture.level_idx;
638 view->sub_resource_idx +=
desc->u.texture.layer_idx *
texture->level_count;
639 view->layer_count =
desc->u.texture.layer_count;
653 TRACE(
"view_no3d %p, desc %s, resource %p, parent %p, parent_ops %p.\n",
665 TRACE(
"view_gl %p, desc %s, resource %p, parent %p, parent_ops %p.\n",
715 VkBufferView vk_buffer_view;
726 create_info.
flags = 0;
729 create_info.offset = bo->
b.buffer_offset +
offset;
730 create_info.range =
size;
739 return vk_buffer_view;
753 VkImageView vk_image_view;
760 ERR(
"Failed to prepare texture.\n");
781 format_vk = view_format_vk;
785 create_info.
flags = 0;
786 create_info.image = texture_vk->
image.vk_image;
790 if (
desc->u.texture.layer_count > 1)
815 && (view_format_vk->
f.red_size || view_format_vk->
f.green_size))
818 if (view_format_vk->
f.red_size)
820 if (view_format_vk->
f.green_size)
831 if (
desc->u.texture.layer_idx || (
desc->u.texture.layer_count != texture_vk->
t.resource.depth
832 &&
desc->u.texture.layer_count != ~0
u))
833 WARN(
"Partial 3D texture views are not supported.\n");
847 create_info.
pNext = &usage_info;
855 return vk_image_view;
869 TRACE(
"view_vk %p.\n", view_vk);
874 FIXME(
"Buffer views not implemented.\n");
881 if (texture_vk->
t.layer_count > 1)
885 && !
desc->u.texture.level_idx &&
desc->u.texture.level_count == texture_vk->
t.level_count
886 && !
desc->u.texture.layer_idx &&
desc->u.texture.layer_count == texture_vk->
t.layer_count
890 TRACE(
"Creating identity render target view.\n");
894 if (texture_vk->
t.swapchain && texture_vk->
t.swapchain->state.desc.backbuffer_count > 1)
896 FIXME(
"Swapchain views not supported.\n");
922 TRACE(
"view_vk %p, desc %s, resource %p, parent %p, parent_ops %p.\n",
939 TRACE(
"desc %s, resource %p, parent %p, parent_ops %p, view %p.\n",
942 adapter_ops =
resource->device->adapter->adapter_ops;
952 TRACE(
"texture %p, sub_resource_idx %u, parent %p, parent_ops %p, view %p.\n",
957 desc.u.texture.level_idx = sub_resource_idx %
texture->level_count;
958 desc.u.texture.level_count = 1;
959 desc.u.texture.layer_idx = sub_resource_idx /
texture->level_count;
960 desc.u.texture.layer_count = 1;
967 unsigned int refcount;
973 TRACE(
"%p increasing refcount to %u.\n",
view, refcount);
980 view->parent_ops->wined3d_object_destroyed(
view->parent);
986 view->resource->device->adapter->adapter_ops->adapter_destroy_shader_resource_view(
view);
992 unsigned int refcount;
998 TRACE(
"%p decreasing refcount to %u.\n",
view, refcount);
1020 return view->parent;
1044 TRACE(
"view_gl %p.\n", view_gl);
1046 view_format = view_gl->
v.format;
1048 desc = &view_gl->
v.desc;
1057 view_gl->
bo_user.valid =
true;
1064 GLenum resource_class, view_class;
1070 if (
resource->format->id == view_format->
id && texture_gl->
target == view_target
1071 && !
desc->u.texture.level_idx &&
desc->u.texture.level_count == texture_gl->
t.level_count
1072 && !
desc->u.texture.layer_idx &&
desc->u.texture.layer_count == texture_gl->
t.layer_count
1075 TRACE(
"Creating identity shader resource view.\n");
1077 else if (texture_gl->
t.swapchain && texture_gl->
t.swapchain->state.desc.backbuffer_count > 1)
1079 FIXME(
"Swapchain shader resource views not supported.\n");
1082 && resource_class == view_class)
1092 FIXME(
"Shader resource view not supported, resource format %s, view format %s.\n",
1104 view->parent_ops = parent_ops;
1127 TRACE(
"view_gl %p, desc %s, resource %p, parent %p, parent_ops %p.\n",
1147 VkBufferView vk_buffer_view;
1156 view_vk->
bo_user.valid =
true;
1164 srv_vk->
view_vk.u.vk_image_info.imageLayout = layout;
1176 VkBufferView vk_buffer_view;
1178 VkImageView vk_image_view;
1181 TRACE(
"srv_vk %p.\n", srv_vk);
1195 if (!vk_buffer_view)
1201 srv_vk->
view_vk.u.vk_buffer_view = vk_buffer_view;
1202 srv_vk->
view_vk.bo_user.valid =
true;
1210 if (texture_vk->
t.layer_count > 1)
1214 && !
desc->u.texture.level_idx &&
desc->u.texture.level_count == texture_vk->
t.level_count
1215 && !
desc->u.texture.layer_idx &&
desc->u.texture.layer_count == texture_vk->
t.layer_count
1218 TRACE(
"Creating identity shader resource view.\n");
1222 if (texture_vk->
t.swapchain && texture_vk->
t.swapchain->state.desc.backbuffer_count > 1)
1223 FIXME(
"Swapchain shader resource views not supported.\n");
1235 srv_vk->
view_vk.u.vk_image_info.imageView = vk_image_view;
1249 TRACE(
"view_vk %p, desc %s, resource %p, parent %p, parent_ops %p.\n",
1267 TRACE(
"desc %s, resource %p, parent %p, parent_ops %p, view %p.\n",
1270 adapter_ops =
resource->device->adapter->adapter_ops;
1291 FIXME(
"Buffer shader resources not supported.\n");
1315 unsigned int i,
j, layer_count, level_count, base_level, base_layer, sub_resource_idx;
1322 TRACE(
"view_gl %p.\n", view_gl);
1324 layer_count = view_gl->
v.desc.u.texture.layer_count;
1325 level_count = view_gl->
v.desc.u.texture.level_count;
1326 base_level = view_gl->
v.desc.u.texture.level_idx;
1327 base_layer = view_gl->
v.desc.u.texture.layer_idx;
1332 for (
i = 0;
i < layer_count; ++
i)
1334 sub_resource_idx = (base_layer +
i) * texture_gl->
t.level_count + base_level;
1336 ERR(
"Failed to load source layer %u.\n", base_layer +
i);
1356 gl_info->
gl_ops.gl.p_glTexParameteri(texture_gl->
target,
1364 for (
i = 0;
i < layer_count; ++
i)
1366 for (
j = 1;
j < level_count; ++
j)
1368 sub_resource_idx = (base_layer +
i) * texture_gl->
t.level_count + base_level +
j;
1377 gl_info->
gl_ops.gl.p_glTexParameteri(texture_gl->
target,
1385 unsigned int i,
j, layer_count, level_count, base_level, base_layer, sub_resource_idx;
1389 VkCommandBuffer vk_command_buffer;
1392 TRACE(
"srv_vk %p.\n", srv_vk);
1394 layer_count = srv_vk->
v.desc.u.texture.layer_count;
1395 level_count = srv_vk->
v.desc.u.texture.level_count;
1396 base_level = srv_vk->
v.desc.u.texture.level_idx;
1397 base_layer = srv_vk->
v.desc.u.texture.layer_idx;
1400 for (
i = 0;
i < layer_count; ++
i)
1402 sub_resource_idx = (base_layer +
i) * texture_vk->
t.level_count + base_level;
1405 ERR(
"Failed to load source layer %u.\n", base_layer +
i);
1409 FIXME(
"Unhandled sRGB read/write control.\n");
1415 FIXME(
"Unhandled multi-sampled resource.\n");
1419 ERR(
"Failed to get command buffer.\n");
1429 vk_dst_range = vk_src_range;
1437 texture_vk->
image.vk_image, &vk_src_range);
1443 texture_vk->
image.vk_image, &vk_dst_range);
1449 region.srcOffsets[0].x = 0;
1450 region.srcOffsets[0].y = 0;
1451 region.srcOffsets[0].z = 0;
1457 region.dstOffsets[0].x = 0;
1458 region.dstOffsets[0].y = 0;
1459 region.dstOffsets[0].z = 0;
1461 for (
i = 1;
i < level_count; ++
i)
1479 texture_vk->
image.vk_image, &vk_src_range);
1481 if (
i == level_count - 1)
1488 texture_vk->
image.vk_image, &vk_dst_range);
1499 texture_vk->
image.vk_image, &vk_src_range);
1505 texture_vk->
image.vk_image, &vk_dst_range);
1509 for (
i = 0;
i < layer_count; ++
i)
1511 for (
j = 1;
j < level_count; ++
j)
1513 sub_resource_idx = (base_layer +
i) * texture_vk->
t.level_count + base_level +
j;
1526 TRACE(
"%p increasing refcount to %u.\n",
view, refcount);
1533 view->parent_ops->wined3d_object_destroyed(
view->parent);
1540 TRACE(
"%p decreasing refcount to %u.\n",
view, refcount);
1549 resource->device->adapter->adapter_ops->adapter_destroy_unordered_access_view(
view);
1561 return view->parent;
1583 unsigned int layer_count, level_count, base_level, base_layer;
1586 const void *
data = clear_value;
1587 GLenum gl_format, gl_type;
1592 FIXME(
"OpenGL implementation does not support ARB_clear_texture.\n");
1598 level_count = view_gl->
v.desc.u.texture.level_count;
1599 base_level = view_gl->
v.desc.u.texture.level_idx;
1608 layer_count = view_gl->
v.desc.u.texture.layer_count;
1609 base_layer = view_gl->
v.desc.u.texture.layer_idx;
1612 if (format_gl->
f.byte_count <= 4 && !fp)
1614 gl_format = format_gl->
format;
1615 gl_type = format_gl->
type;
1630 for (
i = 0;
i < layer_count; ++
i)
1632 for (
j = 0;
j < level_count; ++
j)
1634 sub_resource_idx = (base_layer +
i) * texture_gl->
t.level_count + base_level +
j;
1642 switch (texture_gl->
target)
1645 GL_EXTCALL(glClearTexSubImage(texture_gl->texture_rgb.name, base_level +
j,
1646 0, base_layer +
i, 0,
width, 1, 1, gl_format, gl_type,
data));
1653 GL_EXTCALL(glClearTexSubImage(texture_gl->texture_rgb.name, base_level +
j,
1658 GL_EXTCALL(glClearTexSubImage(texture_gl->texture_rgb.name, base_level +
j,
1673 FIXME(
"OpenGL implementation does not support ARB_clear_buffer_object.\n");
1688 FIXME(
"Floating-point buffer clears not implemented.\n");
1721 if (!
view->counter_bo)
1726 src.buffer_object = 0;
1729 dst.buffer_object =
view->counter_bo;
1744 if (!
view->counter_bo)
1771 TRACE(
"view_gl %p.\n", view_gl);
1783 view_gl->
bo_user.valid =
true;
1789 view_gl->
v.counter_bo = &bo->
b;
1799 unsigned int depth_or_layer_count;
1804 depth_or_layer_count = texture_gl->
t.layer_count;
1806 if (
desc->u.texture.layer_idx ||
desc->u.texture.layer_count != depth_or_layer_count)
1809 desc, texture_gl, view_gl->
v.format);
1820 view->parent_ops = parent_ops;
1839 TRACE(
"view_gl %p, desc %s, resource %p, parent %p, parent_ops %p.\n",
1862 info.next = &hlsl_info;
1863 info.source = *hlsl;
1897 VkShaderModule shader_module;
1907 vk_info = context_vk->
vk_info;
1910 if (!
GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT,
1913 ERR(
"Failed to get a reference to the current module, last error %ld.\n",
GetLastError());
1919 ERR(
"Failed to retrieve resource, last error %ld.\n",
GetLastError());
1931 ERR(
"Failed to lock resource.\n");
1936 code.code = resource_ptr;
1941 ERR(
"Failed to compile shader, ret %d.\n",
ret);
1947 ERR(
"Failed to free resource.\n");
1952 shader_module = (VkShaderModule)
context->device->adapter->shader_backend->shader_compile(
context, &shader_desc,
1956 ERR(
"Failed to create shader.\n");
1965 pipeline_info.
flags = 0;
1968 pipeline_info.stage.
flags = 0;
1970 pipeline_info.stage.pName =
"main";
1971 pipeline_info.stage.pSpecializationInfo =
NULL;
1972 pipeline_info.stage.module = shader_module;
1995 vk_set_bindings[0].
binding = 0;
2001 vk_set_bindings[1].
binding = 1;
2037 state->buffer_group_size.x = 128;
2038 state->buffer_group_size.y = 1;
2039 state->buffer_group_size.z = 1;
2040 state->image_1d_group_size.x = 64;
2041 state->image_1d_group_size.y = 1;
2042 state->image_1d_group_size.z = 1;
2043 state->image_1d_array_group_size.x = 64;
2044 state->image_1d_array_group_size.y = 1;
2045 state->image_1d_array_group_size.z = 1;
2046 state->image_2d_group_size.x = 8;
2047 state->image_2d_group_size.y = 8;
2048 state->image_2d_group_size.z = 1;
2049 state->image_2d_array_group_size.x = 8;
2050 state->image_2d_array_group_size.y = 8;
2051 state->image_2d_array_group_size.z = 1;
2052 state->image_3d_group_size.x = 8;
2053 state->image_3d_group_size.y = 8;
2054 state->image_3d_group_size.z = 1;
2096 VkCommandBuffer vk_command_buffer;
2099 VkBufferView vk_buffer_view;
2102 VkPipeline vk_pipeline;
2116 group_count =
state->buffer_group_size;
2121 vk_pipeline =
pipelines->image_1d_array;
2122 group_count =
state->image_1d_array_group_size;
2127 group_count =
state->image_1d_group_size;
2133 vk_pipeline =
pipelines->image_2d_array;
2134 group_count =
state->image_2d_array_group_size;
2139 group_count =
state->image_2d_group_size;
2144 group_count =
state->image_3d_group_size;
2154 ERR(
"Pipeline was not correctly initialized.\n");
2159 vk_writes[0].pNext =
NULL;
2160 vk_writes[0].dstBinding = 1;
2161 vk_writes[0].dstArrayElement = 0;
2162 vk_writes[0].descriptorCount = 1;
2163 vk_writes[0].pImageInfo =
NULL;
2164 vk_writes[0].pTexelBufferView = &vk_buffer_view;
2165 vk_writes[0].pImageInfo = &vk_image_info;
2172 layout =
state->buffer_layout;
2175 if (
buffer->structure_byte_stride)
2196 unsigned int layer_count, level_count, base_level, base_layer,
i,
j;
2200 layout =
state->image_layout;
2203 level_count = view_desc->
u.
texture.level_count;
2204 base_level = view_desc->
u.
texture.level_idx;
2212 layer_count = view_desc->
u.
texture.layer_count;
2213 base_layer = view_desc->
u.
texture.layer_idx;
2218 group_count.
z = (view_desc->
u.
texture.layer_count + group_count.
z - 1) / group_count.
z;
2220 for (
i = 0;
i < layer_count; ++
i)
2222 for (
j = 0;
j < level_count; ++
j)
2224 unsigned int sub_resource_idx = (base_layer +
i) * texture_vk->
t.level_count + base_level +
j;
2234 group_count.
x = (
constants.extent.width + group_count.
x - 1) / group_count.
x;
2235 group_count.
y = (
constants.extent.height + group_count.
y - 1) / group_count.
y;
2272 vk_buffer_view = view_vk->
view_vk.u.vk_buffer_view;
2286 vk_image_info = view_vk->
view_vk.u.vk_image_info;
2287 if (!vk_image_info.imageView)
2310 vk_writes[1].pNext =
NULL;
2311 vk_writes[1].dstBinding = 0;
2312 vk_writes[1].dstArrayElement = 0;
2313 vk_writes[1].descriptorCount = 1;
2314 vk_writes[1].pImageInfo =
NULL;
2315 vk_writes[1].pTexelBufferView =
NULL;
2317 vk_writes[1].pBufferInfo = &buffer_info;
2322 ERR(
"Failed to create constants BO.\n");
2329 cb_destination_address.
addr = 0;
2336 buffer_info.buffer = constants_bo.
vk_buffer;
2337 buffer_info.range = constants_bo.
size;
2338 buffer_info.offset = constants_bo.
b.buffer_offset;
2340 vk_info = context_vk->
vk_info;
2344 ERR(
"Failed to create descriptor set.\n");
2349 vk_writes[1].dstSet = vk_writes[0].dstSet;
2361 vk_barrier.pNext =
NULL;
2368 0, 1, &vk_barrier, 0,
NULL, 0,
NULL));
2380 0, 1, &vk_barrier, 0,
NULL, 0,
NULL));
2391 view_vk->
view_vk.command_buffer_id);
2403 VkBufferView vk_buffer_view;
2412 view_vk->
bo_user.valid =
true;
2430 VkBufferView vk_buffer_view;
2432 VkImageView vk_image_view;
2435 TRACE(
"uav_vk %p.\n", uav_vk);
2446 vk_info = context_vk->
vk_info;
2454 uav_vk->
view_vk.u.vk_buffer_view = vk_buffer_view;
2455 uav_vk->
view_vk.bo_user.valid =
true;
2465 ERR(
"Failed to create counter bo.\n");
2478 create_info.
flags = 0;
2479 create_info.buffer = uav_vk->
counter_bo.vk_buffer;
2481 create_info.offset = uav_vk->
counter_bo.b.buffer_offset;
2482 create_info.range =
sizeof(
uint32_t);
2503 if (texture_vk->
t.layer_count > 1)
2507 && !
desc->u.texture.level_idx &&
desc->u.texture.level_count == texture_vk->
t.level_count
2508 && !
desc->u.texture.layer_idx &&
desc->u.texture.layer_count == texture_vk->
t.layer_count
2511 TRACE(
"Creating identity unordered access view.\n");
2515 if (texture_vk->
t.swapchain && texture_vk->
t.swapchain->state.desc.backbuffer_count > 1)
2516 FIXME(
"Swapchain unordered access views not supported.\n");
2539 TRACE(
"view_vk %p, desc %s, resource %p, parent %p, parent_ops %p.\n",
2557 TRACE(
"desc %s, resource %p, parent %p, parent_ops %p, view %p.\n",
2560 adapter_ops =
resource->device->adapter->adapter_ops;
void adapter_vk_copy_bo_address(struct wined3d_context *context, const struct wined3d_bo_address *dst, const struct wined3d_bo_address *src, unsigned int range_count, const struct wined3d_range *ranges, uint32_t map_flags)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
void wined3d_context_gl_bind_bo(struct wined3d_context_gl *context_gl, GLenum binding, GLuint name)
void wined3d_context_gl_bind_texture(struct wined3d_context_gl *context_gl, GLenum target, GLuint name)
void wined3d_context_gl_active_texture(struct wined3d_context_gl *context_gl, const struct wined3d_gl_info *gl_info, unsigned int unit)
struct wined3d_pipeline_layout_vk * wined3d_context_vk_get_pipeline_layout(struct wined3d_context_vk *context_vk, VkDescriptorSetLayoutBinding *bindings, SIZE_T binding_count)
BOOL wined3d_context_vk_create_bo(struct wined3d_context_vk *context_vk, VkDeviceSize size, VkBufferUsageFlags usage, VkMemoryPropertyFlags memory_type, struct wined3d_bo_vk *bo)
void wined3d_context_vk_destroy_vk_buffer_view(struct wined3d_context_vk *context_vk, VkBufferView vk_view, uint64_t command_buffer_id)
void wined3d_context_vk_end_current_render_pass(struct wined3d_context_vk *context_vk)
VkDescriptorSet wined3d_context_vk_create_vk_descriptor_set(struct wined3d_context_vk *context_vk, VkDescriptorSetLayout vk_set_layout)
void wined3d_context_vk_destroy_vk_image_view(struct wined3d_context_vk *context_vk, VkImageView vk_view, uint64_t command_buffer_id)
VkCommandBuffer wined3d_context_vk_get_command_buffer(struct wined3d_context_vk *context_vk)
void wined3d_context_vk_destroy_bo(struct wined3d_context_vk *context_vk, const struct wined3d_bo_vk *bo)
void wined3d_context_vk_image_barrier(struct wined3d_context_vk *context_vk, VkCommandBuffer vk_command_buffer, VkPipelineStageFlags src_stage_mask, VkPipelineStageFlags dst_stage_mask, VkAccessFlags src_access_mask, VkAccessFlags dst_access_mask, VkImageLayout old_layout, VkImageLayout new_layout, VkImage image, const VkImageSubresourceRange *range)
void wined3d_cs_init_object(struct wined3d_cs *cs, void(*callback)(void *object), void *object)
size_t const element_size
BOOL wined3d_buffer_prepare_location(struct wined3d_buffer *buffer, struct wined3d_context *context, unsigned int location)
BOOL wined3d_buffer_load_location(struct wined3d_buffer *buffer, struct wined3d_context *context, uint32_t location)
void wined3d_buffer_acquire_bo_for_write(struct wined3d_buffer *buffer, struct wined3d_context *context)
void *CDECL wined3d_buffer_get_parent(const struct wined3d_buffer *buffer)
void wined3d_buffer_invalidate_location(struct wined3d_buffer *buffer, uint32_t location)
void wined3d_buffer_validate_location(struct wined3d_buffer *buffer, uint32_t location)
void wined3d_buffer_copy_bo_address(struct wined3d_buffer *dst_buffer, struct wined3d_context *context, unsigned int dst_offset, const struct wined3d_const_bo_address *src_addr, unsigned int size)
void context_invalidate_compute_state(struct wined3d_context *context, DWORD state_id)
void context_invalidate_state(struct wined3d_context *context, unsigned int state_id)
bool wined3d_device_gl_create_bo(struct wined3d_device_gl *device_gl, struct wined3d_context_gl *context_gl, GLsizeiptr size, GLenum binding, GLenum usage, bool coherent, GLbitfield flags, struct wined3d_bo_gl *bo)
VkPipelineStageFlags vk_pipeline_stage_mask_from_bind_flags(uint32_t bind_flags)
VkAccessFlags vk_access_mask_from_bind_flags(uint32_t bind_flags)
unsigned int wined3d_resource_get_sample_count(const struct wined3d_resource *resource)
void wined3d_texture_invalidate_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, uint32_t location)
struct wined3d_texture *__cdecl wined3d_texture_from_resource(struct wined3d_resource *resource)
void wined3d_vk_swizzle_from_color_fixup(VkComponentMapping *mapping, struct color_fixup_desc fixup)
void wined3d_gl_texture_swizzle_from_color_fixup(GLint swizzle[4], struct color_fixup_desc fixup)
BOOL wined3d_texture_vk_prepare_texture(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk)
void wined3d_texture_gl_bind_and_dirtify(struct wined3d_texture_gl *texture_gl, struct wined3d_context_gl *context_gl, BOOL srgb)
void wined3d_texture_validate_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, uint32_t location)
const VkDescriptorImageInfo * wined3d_texture_vk_get_default_image_info(struct wined3d_texture_vk *texture_vk, struct wined3d_context_vk *context_vk)
BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, unsigned int location)
void wined3d_texture_gl_prepare_texture(struct wined3d_texture_gl *texture_gl, struct wined3d_context_gl *context_gl, BOOL srgb)
void wined3d_texture_gl_bind(struct wined3d_texture_gl *texture_gl, struct wined3d_context_gl *context_gl, BOOL srgb)
BOOL wined3d_texture_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, uint32_t location)
enum wined3d_format_id wined3d_get_typed_format_id(const struct wined3d_adapter *adapter, const struct wined3d_format *format, enum wined3d_channel_type channel_type)
const char * debug_d3dformat(enum wined3d_format_id format_id)
uint32_t wined3d_format_pack(const struct wined3d_format *format, const struct wined3d_uvec4 *value)
const char * wined3d_debug_vkresult(VkResult vr)
const char * debug_d3dresourcetype(enum wined3d_resource_type resource_type)
const struct wined3d_format * wined3d_get_format(const struct wined3d_adapter *adapter, enum wined3d_format_id format_id, unsigned int bind_flags)
BOOL wined3d_formats_are_srgb_variants(enum wined3d_format_id format1, enum wined3d_format_id format2)
const char * wined3d_debug_view_desc(const struct wined3d_view_desc *d, const struct wined3d_resource *resource)
BOOL wined3d_format_is_depth_view(enum wined3d_format_id resource_format_id, enum wined3d_format_id view_format_id)
static void get_buffer_view_range(const struct wined3d_buffer *buffer, const struct wined3d_view_desc *desc, const struct wined3d_format *view_format, unsigned int *offset, unsigned int *size)
HRESULT CDECL wined3d_shader_resource_view_create(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader_resource_view **view)
static void wined3d_shader_resource_view_gl_cs_init(void *object)
void wined3d_rendertarget_view_prepare_location(struct wined3d_rendertarget_view *view, struct wined3d_context *context, uint32_t location)
VkImageViewType vk_image_view_type_from_wined3d(enum wined3d_resource_type type, uint32_t flags)
void wined3d_unordered_access_view_copy_counter(struct wined3d_unordered_access_view *view, struct wined3d_buffer *buffer, unsigned int offset, struct wined3d_context *context)
static void wined3d_view_invalidate_location(struct wined3d_resource *resource, const struct wined3d_view_desc *desc, DWORD location)
void wined3d_rendertarget_view_load_location(struct wined3d_rendertarget_view *view, struct wined3d_context *context, uint32_t location)
static void wined3d_unordered_access_view_vk_cs_init(void *object)
DWORD wined3d_rendertarget_view_get_locations(const struct wined3d_rendertarget_view *view)
void wined3d_rendertarget_view_validate_location(struct wined3d_rendertarget_view *view, uint32_t location)
static VkBufferView wined3d_view_vk_create_vk_buffer_view(struct wined3d_context_vk *context_vk, const struct wined3d_view_desc *desc, struct wined3d_buffer_vk *buffer_vk, const struct wined3d_format_vk *view_format_vk)
HRESULT wined3d_rendertarget_view_vk_init(struct wined3d_rendertarget_view_vk *view_vk, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
#define WINED3D_VIEW_CUBE_ARRAY
void wined3d_unordered_access_view_invalidate_location(struct wined3d_unordered_access_view *view, uint32_t location)
HRESULT wined3d_shader_resource_view_vk_init(struct wined3d_shader_resource_view_vk *view_vk, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
void wined3d_shader_resource_view_vk_update_layout(struct wined3d_shader_resource_view_vk *srv_vk, VkImageLayout layout)
HRESULT wined3d_rendertarget_view_no3d_init(struct wined3d_rendertarget_view *view_no3d, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
HRESULT CDECL wined3d_rendertarget_view_create_from_sub_resource(struct wined3d_texture *texture, unsigned int sub_resource_idx, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_rendertarget_view **view)
ULONG CDECL wined3d_unordered_access_view_decref(struct wined3d_unordered_access_view *view)
HRESULT CDECL wined3d_unordered_access_view_create(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_unordered_access_view **view)
void wined3d_shader_resource_view_cleanup(struct wined3d_shader_resource_view *view)
void wined3d_shader_resource_view_gl_bind(struct wined3d_shader_resource_view_gl *view_gl, unsigned int unit, struct wined3d_sampler_gl *sampler_gl, struct wined3d_context_gl *context_gl)
static void wined3d_shader_resource_view_vk_cs_init(void *object)
void wined3d_device_vk_uav_clear_state_init(struct wined3d_device_vk *device_vk)
void wined3d_shader_resource_view_vk_generate_mipmap(struct wined3d_shader_resource_view_vk *srv_vk, struct wined3d_context_vk *context_vk)
ULONG CDECL wined3d_shader_resource_view_incref(struct wined3d_shader_resource_view *view)
HRESULT CDECL wined3d_rendertarget_view_create(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_rendertarget_view **view)
static HRESULT wined3d_shader_resource_view_init(struct wined3d_shader_resource_view *view, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
void wined3d_unordered_access_view_cleanup(struct wined3d_unordered_access_view *view)
void *CDECL wined3d_shader_resource_view_get_parent(const struct wined3d_shader_resource_view *view)
static HRESULT wined3d_unordered_access_view_init(struct wined3d_unordered_access_view *view, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
void wined3d_unordered_access_view_gl_clear(struct wined3d_unordered_access_view_gl *view_gl, const struct wined3d_uvec4 *clear_value, struct wined3d_context_gl *context_gl, bool fp)
void wined3d_rendertarget_view_get_drawable_size(const struct wined3d_rendertarget_view *view, const struct wined3d_context *context, unsigned int *width, unsigned int *height)
void wined3d_unordered_access_view_gl_update(struct wined3d_unordered_access_view_gl *uav_gl, struct wined3d_context_gl *context_gl)
static GLenum get_texture_view_target(const struct wined3d_gl_info *gl_info, const struct wined3d_view_desc *desc, const struct wined3d_texture_gl *texture_gl)
void wined3d_shader_resource_view_vk_update_buffer(struct wined3d_shader_resource_view_vk *srv_vk, struct wined3d_context_vk *context_vk)
void CDECL wined3d_rendertarget_view_set_parent(struct wined3d_rendertarget_view *view, void *parent, const struct wined3d_parent_ops *parent_ops)
ULONG CDECL wined3d_rendertarget_view_incref(struct wined3d_rendertarget_view *view)
static void wined3d_render_target_view_gl_cs_init(void *object)
void wined3d_shader_resource_view_gl_update(struct wined3d_shader_resource_view_gl *srv_gl, struct wined3d_context_gl *context_gl)
void *CDECL wined3d_rendertarget_view_get_parent(const struct wined3d_rendertarget_view *view)
HRESULT wined3d_rendertarget_view_gl_init(struct wined3d_rendertarget_view_gl *view_gl, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
void wined3d_rendertarget_view_invalidate_location(struct wined3d_rendertarget_view *view, uint32_t location)
void *CDECL wined3d_rendertarget_view_get_sub_resource_parent(const struct wined3d_rendertarget_view *view)
HRESULT wined3d_unordered_access_view_gl_init(struct wined3d_unordered_access_view_gl *view_gl, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
static void create_buffer_view(struct wined3d_gl_view *view, struct wined3d_context *context, const struct wined3d_view_desc *desc, struct wined3d_buffer *buffer, const struct wined3d_format *view_format)
void wined3d_unordered_access_view_vk_clear(struct wined3d_unordered_access_view_vk *view_vk, const struct wined3d_uvec4 *clear_value, struct wined3d_context_vk *context_vk, bool fp)
ULONG CDECL wined3d_unordered_access_view_incref(struct wined3d_unordered_access_view *view)
static VkPipeline create_uav_pipeline(struct wined3d_context_vk *context_vk, struct wined3d_pipeline_layout_vk *layout, const char *resource_filename, enum wined3d_shader_resource_type resource_type)
void wined3d_device_vk_uav_clear_state_cleanup(struct wined3d_device_vk *device_vk)
static void shader_resource_view_gl_bind_and_dirtify(struct wined3d_shader_resource_view_gl *view_gl, struct wined3d_context_gl *context_gl)
static const struct wined3d_format * validate_resource_view(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, BOOL mip_slice, BOOL allow_srgb_toggle)
void wined3d_rendertarget_view_get_box(struct wined3d_rendertarget_view *view, struct wined3d_box *box)
void wined3d_rendertarget_view_cleanup(struct wined3d_rendertarget_view *view)
static BOOL is_stencil_view_format(const struct wined3d_format *format)
void wined3d_shader_resource_view_gl_generate_mipmap(struct wined3d_shader_resource_view_gl *view_gl, struct wined3d_context_gl *context_gl)
static HRESULT wined3d_rendertarget_view_init(struct wined3d_rendertarget_view *view, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
static void wined3d_render_target_view_vk_cs_init(void *object)
void *CDECL wined3d_unordered_access_view_get_parent(const struct wined3d_unordered_access_view *view)
struct wined3d_resource *CDECL wined3d_rendertarget_view_get_resource(const struct wined3d_rendertarget_view *view)
static void create_texture_view(struct wined3d_gl_view *view, GLenum view_target, const struct wined3d_view_desc *desc, struct wined3d_texture_gl *texture_gl, const struct wined3d_format *view_format)
void wined3d_shader_resource_view_destroy(struct wined3d_shader_resource_view *view)
ULONG CDECL wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view *view)
static void wined3d_view_load_location(struct wined3d_resource *resource, const struct wined3d_view_desc *desc, struct wined3d_context *context, DWORD location)
static void create_buffer_texture(struct wined3d_gl_view *view, struct wined3d_context_gl *context_gl, struct wined3d_buffer *buffer, const struct wined3d_format_gl *view_format_gl, unsigned int offset, unsigned int size)
HRESULT wined3d_unordered_access_view_vk_init(struct wined3d_unordered_access_view_vk *view_vk, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
static VkImageView wined3d_view_vk_create_vk_image_view(struct wined3d_context_vk *context_vk, const struct wined3d_view_desc *desc, struct wined3d_texture_vk *texture_vk, const struct wined3d_format_vk *view_format_vk, struct color_fixup_desc fixup, bool rtv, VkImageUsageFlags usage)
void wined3d_unordered_access_view_set_counter(struct wined3d_unordered_access_view *view, unsigned int value)
static int compile_hlsl_cs(const struct vkd3d_shader_code *hlsl, struct vkd3d_shader_code *dxbc)
void wined3d_unordered_access_view_vk_update(struct wined3d_unordered_access_view_vk *uav_vk, struct wined3d_context_vk *context_vk)
HRESULT wined3d_shader_resource_view_gl_init(struct wined3d_shader_resource_view_gl *view_gl, const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops)
ULONG CDECL wined3d_shader_resource_view_decref(struct wined3d_shader_resource_view *view)
static void wined3d_unordered_access_view_gl_cs_init(void *object)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
BOOL WINAPI GetModuleHandleExA(IN DWORD dwFlags, IN LPCSTR lpModuleName OPTIONAL, OUT HMODULE *phModule)
BOOL WINAPI FreeResource(HGLOBAL handle)
HRSRC WINAPI FindResourceA(HMODULE hModule, LPCSTR name, LPCSTR type)
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
LPVOID WINAPI LockResource(HGLOBAL handle)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
static struct @1920 default_info
GLint GLint GLsizei GLsizei GLsizei depth
#define GL_TEXTURE_CUBE_MAP
#define GL_TEXTURE_BASE_LEVEL
GLint GLint GLsizei GLsizei height
#define GL_TEXTURE_MAX_LEVEL
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei width
#define GL_SKIP_DECODE_EXT
#define GL_ATOMIC_COUNTER_BUFFER
#define GL_TEXTURE_SRGB_DECODE_EXT
#define GL_TEXTURE_BUFFER
#define GL_TEXTURE_SWIZZLE_RGBA
#define GL_TEXTURE_1D_ARRAY
#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY
#define GL_TEXTURE_2D_MULTISAMPLE
#define GL_TEXTURE_CUBE_MAP_ARRAY
#define GL_TEXTURE_2D_ARRAY
GLuint GLenum GLsizei GLsizei GLint GLint GLboolean packed
GLsizeiptr const GLvoid GLenum usage
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
#define location(file, line)
D3D11_SHADER_VARIABLE_DESC desc
png_const_structrp png_const_inforp int * unit
for(i=0;i< sizeof(testsuite)/sizeof(testsuite[0]);++i) ok(call_test(testsuite[i].func)
void wined3d_sampler_gl_bind(struct wined3d_sampler_gl *sampler_gl, unsigned int unit, struct wined3d_texture_gl *texture_gl, const struct wined3d_context_gl *context_gl)
static unsigned char default_flags
wchar_t const *const size_t const buffer_size
VkBufferViewCreateFlags flags
int32_t basePipelineIndex
VkPipelineCreateFlags flags
VkImageLayout imageLayout
VkDescriptorType descriptorType
const VkSampler * pImmutableSamplers
VkShaderStageFlags stageFlags
VkImageAspectFlags aspectMask
VkImageSubresourceRange subresourceRange
VkComponentMapping components
VkImageViewCreateFlags flags
struct wined3d_sampler_desc sampler_desc
enum vkd3d_shader_structure_type type
struct vkd3d_shader_code secondary_code
struct wined3d_gl_info gl_info
HRESULT(* adapter_create_rendertarget_view)(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_rendertarget_view **view)
HRESULT(* adapter_create_unordered_access_view)(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_unordered_access_view **view)
HRESULT(* adapter_create_shader_resource_view)(const struct wined3d_view_desc *desc, struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader_resource_view **view)
struct wined3d_bo * buffer_object
struct wined3d_bo * buffer_object
unsigned int active_texture
const struct wined3d_gl_info * gl_info
const struct wined3d_vk_info * vk_info
struct wined3d_vk_info vk_info
struct wined3d_context_vk context_vk
struct wined3d_uav_clear_state_vk uav_clear_state
BOOL supported[WINED3D_GL_EXT_COUNT]
struct opengl_funcs gl_ops
struct wined3d_gl_limits limits
struct wined3d_fbo_ops fbo_ops
VkDescriptorSetLayout vk_set_layout
VkPipelineLayout vk_pipeline_layout
struct wined3d_rendertarget_view v
struct wined3d_gl_view gl_view
struct wined3d_rendertarget_view v
VkImageView vk_image_view
struct wined3d_bo_user bo_user
struct wined3d_shader_resource_view v
struct wined3d_gl_view gl_view
struct wined3d_view_vk view_vk
struct wined3d_shader_resource_view v
struct wined3d_image_vk image
enum VkImageLayout layout
struct wined3d_bo_gl counter_bo
struct wined3d_unordered_access_view v
struct wined3d_bo_user bo_user
struct wined3d_gl_view gl_view
VkBufferView vk_counter_view
struct wined3d_bo_vk counter_bo
struct wined3d_unordered_access_view v
struct wined3d_view_vk view_vk
struct wined3d_view_desc::@4822::@4823 buffer
struct wined3d_view_desc::@4822::@4824 texture
union wined3d_view_desc::@4822 u
struct wined3d_bo_user bo_user
VkBufferView vk_buffer_view
VkDescriptorImageInfo vk_image_info
union wined3d_view_vk::@365 u
uint64_t command_buffer_id
@ VKD3D_SHADER_COMPILE_OPTION_API_VERSION
VKD3D_SHADER_API void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *code)
@ VKD3D_SHADER_SOURCE_HLSL
@ VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO
@ VKD3D_SHADER_STRUCTURE_TYPE_HLSL_SOURCE_INFO
@ VKD3D_SHADER_API_VERSION_1_12
VKD3D_SHADER_API int vkd3d_shader_compile(const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
@ VKD3D_SHADER_TARGET_DXBC_TPF
@ VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
@ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
@ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
@ VK_IMAGE_LAYOUT_GENERAL
@ VK_SHADER_STAGE_COMPUTE_BIT
@ VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
@ VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
void VKAPI_CALL vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet *pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t *pDynamicOffsets)
VkResult VKAPI_CALL vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo *pCreateInfos, const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines)
VkFlags VkImageUsageFlags
@ VK_IMAGE_VIEW_TYPE_2D_ARRAY
@ VK_IMAGE_VIEW_TYPE_1D_ARRAY
@ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY
@ VK_IMAGE_VIEW_TYPE_CUBE
void VKAPI_CALL vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit *pRegions, VkFilter filter)
@ VK_PIPELINE_BIND_POINT_COMPUTE
@ VK_IMAGE_ASPECT_STENCIL_BIT
@ VK_IMAGE_ASPECT_DEPTH_BIT
@ VK_IMAGE_USAGE_SAMPLED_BIT
@ VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
@ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
@ VK_IMAGE_USAGE_STORAGE_BIT
void VKAPI_CALL vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks *pAllocator)
void VKAPI_CALL vkCmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline)
@ VK_COMPONENT_SWIZZLE_IDENTITY
@ VK_COMPONENT_SWIZZLE_ZERO
@ VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT
@ VK_BUFFER_USAGE_TRANSFER_DST_BIT
@ VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
@ VK_BUFFER_USAGE_TRANSFER_SRC_BIT
VkResult VKAPI_CALL vkCreateImageView(VkDevice device, const VkImageViewCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkImageView *pView)
void VKAPI_CALL vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
@ VK_ACCESS_TRANSFER_WRITE_BIT
@ VK_ACCESS_TRANSFER_READ_BIT
@ VK_ACCESS_SHADER_WRITE_BIT
@ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
@ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
@ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
VkResult VKAPI_CALL vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkBufferView *pView)
void VKAPI_CALL vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data)
void VKAPI_CALL vkDestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks *pAllocator)
void VKAPI_CALL vkUpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet *pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet *pDescriptorCopies)
@ VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT
@ VK_PIPELINE_STAGE_ALL_COMMANDS_BIT
@ VK_PIPELINE_STAGE_TRANSFER_BIT
void VKAPI_CALL vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier *pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier *pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier *pImageMemoryBarriers)
#define VK_API_VERSION_1_1
@ VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR
@ VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
@ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
@ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
@ VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
@ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
@ VK_STRUCTURE_TYPE_MEMORY_BARRIER
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
#define GL_DEPTH_STENCIL_TEXTURE_MODE
#define GL_CLIENT_STORAGE_BIT
DWORD WINAPI GetLastError(void)
#define WINED3D_VIEW_TEXTURE_CUBE
@ WINED3D_RTYPE_TEXTURE_2D
@ WINED3D_RTYPE_TEXTURE_1D
@ WINED3D_RTYPE_TEXTURE_3D
#define WINED3D_VIEW_TEXTURE_ARRAY
#define WINED3D_BIND_UNORDERED_ACCESS
#define WINED3D_VIEW_BUFFER_RAW
#define WINED3D_VIEW_FORWARD_REFERENCE
#define WINED3D_BIND_SHADER_RESOURCE
@ WINED3DFMT_X24_TYPELESS_G8_UINT
@ WINED3DFMT_R32G32B32A32_UINT
@ WINED3DFMT_X32_TYPELESS_G8X24_UINT
@ WINED3DFMT_R32_TYPELESS
@ WINED3DFMT_R32G32B32A32_SINT
@ WINED3DFMT_R11G11B10_FLOAT
#define WINED3D_VIEW_BUFFER_APPEND
#define WINED3D_BIND_DEPTH_STENCIL
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)
static bool wined3d_bound_range(unsigned int start, unsigned int count, unsigned int limit)
#define WINED3D_MAP_DISCARD
#define WINED3D_MAP_WRITE
#define WINED3D_VIEW_BUFFER_COUNTER
@ WINED3D_SHADER_TYPE_COMPUTE
#define WINED3D_BIND_RENDER_TARGET
#define WINED3D_SRGB_READ_WRITE_CONTROL
@ ARB_TEXTURE_BUFFER_OBJECT
@ EXT_TEXTURE_SRGB_DECODE
@ ARB_CLEAR_BUFFER_OBJECT
@ ARB_TEXTURE_BUFFER_RANGE
@ ARB_TEXTURE_CUBE_MAP_ARRAY
static void wined3d_context_gl_reference_bo(struct wined3d_context_gl *context_gl, struct wined3d_bo_gl *bo_gl)
static struct gl_texture * wined3d_texture_gl_get_gl_texture(struct wined3d_texture_gl *texture_gl, bool srgb)
static GLuint wined3d_texture_gl_get_texture_name(const struct wined3d_texture_gl *texture_gl, const struct wined3d_context *context, bool srgb)
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)
static BOOL wined3d_format_is_typeless(const struct wined3d_format *format)
static unsigned int wined3d_texture_get_level_height(const struct wined3d_texture *texture, unsigned int level)
@ WINED3D_CHANNEL_TYPE_UINT
#define WINED3D_LOCATION_TEXTURE_SRGB
#define STATE_GRAPHICS_SHADER_RESOURCE_BINDING
static unsigned int wined3d_texture_get_level_width(const struct wined3d_texture *texture, unsigned int level)
#define WINED3D_FORMAT_ATTR_INTEGER
#define WINED3D_LOCATION_BUFFER
#define STATE_COMPUTE_SHADER
wined3d_shader_resource_type
@ WINED3D_SHADER_RESOURCE_BUFFER
@ WINED3D_SHADER_RESOURCE_TEXTURE_3D
@ WINED3D_SHADER_RESOURCE_TEXTURE_2D
@ WINED3D_SHADER_RESOURCE_TEXTURE_1DARRAY
@ WINED3D_SHADER_RESOURCE_TEXTURE_2DARRAY
@ WINED3D_SHADER_RESOURCE_TEXTURE_1D
static void context_release(struct wined3d_context *context)
static BOOL can_use_texture_swizzle(const struct wined3d_d3d_info *d3d_info, const struct wined3d_format *format)
static uint32_t wined3d_mask_from_size(unsigned int size)
static const struct color_fixup_desc COLOR_FIXUP_IDENTITY
static ULONG wined3d_resource_decref(struct wined3d_resource *resource)
static BOOL is_identity_fixup(struct color_fixup_desc fixup)
#define STATE_COMPUTE_SHADER_RESOURCE_BINDING
#define WINED3D_LOCATION_TEXTURE_RGB
static ULONG wined3d_resource_incref(struct wined3d_resource *resource)
static void wined3d_texture_get_level_box(const struct wined3d_texture *texture, unsigned int level, struct wined3d_box *box)
static struct wined3d_context * context_acquire(struct wined3d_device *device, struct wined3d_texture *texture, unsigned int sub_resource_idx)
static void wined3d_context_copy_bo_address(struct wined3d_context *context, const struct wined3d_bo_address *dst, const struct wined3d_bo_address *src, unsigned int range_count, const struct wined3d_range *ranges, uint32_t map_flags)
static struct wined3d_texture * texture_from_resource(struct wined3d_resource *resource)
static struct wined3d_buffer * buffer_from_resource(struct wined3d_resource *resource)
#define WINED3D_TEXTURE_IS_SRGB
static unsigned int wined3d_texture_get_level_depth(const struct wined3d_texture *texture, unsigned int level)
static VkImageAspectFlags vk_aspect_mask_from_format(const struct wined3d_format *format)
static void wined3d_context_vk_reference_unordered_access_view(const struct wined3d_context_vk *context_vk, struct wined3d_unordered_access_view_vk *uav_vk)
static void wined3d_context_vk_reference_texture(const struct wined3d_context_vk *context_vk, struct wined3d_texture_vk *texture_vk)
@ WINED3D_VK_KHR_MAINTENANCE2
static void wined3d_context_vk_reference_bo(const struct wined3d_context_vk *context_vk, struct wined3d_bo_vk *bo)