32#define DEFAULT_REFRESH_RATE 0
57static const GUID IID_D3DDEVICE_D3DUID = { 0xaeb2cdd4, 0x6e41, 0x43ea, { 0x94,0x1c,0x83,0x61,0xcc,0x76,0x07,0x81 } };
81 TRACE(
"output %p.\n", output);
93 TRACE(
"output %p, exclusive %#x.\n", output, exclusive);
96 set_owner_desc.
pType = &owner_type;
122 TRACE(
"output %p.\n", output);
160 adapter->vram_bytes_used += amount;
161 TRACE(
"Adjusted used adapter memory by 0x%s to 0x%s.\n",
164 return adapter->vram_bytes_used;
172 TRACE(
"Adjusted mapped adapter memory by %Id to %Id.\n",
size,
ret);
179 unsigned int output_idx;
181 for (output_idx = 0; output_idx <
adapter->output_count; ++output_idx)
193 TRACE(
"%p increasing refcount to %u.\n",
wined3d, refcount);
202 TRACE(
"%p decreasing refcount to %u.\n",
wined3d, refcount);
680 TRACE(
"Found driver \"%s\", subversion %u, build %u.\n",
706 static unsigned int once;
714 TRACE(
"Overriding vendor PCI ID with 0x%04x.\n",
vendor);
719 TRACE(
"Overriding device PCI ID with 0x%04x.\n",
device);
723 ERR_(winediag)(
"Invalid GPU override %04x:%04x specified, ignoring.\n",
vendor,
device);
745 WORD driver_os_version, driver_feature_level = 10;
748 MEMORYSTATUSEX memory_status;
751 memset(&os_version, 0,
sizeof(os_version));
755 ERR(
"Failed to get OS version, reporting 2000/XP.\n");
756 driver_os_version = 6;
770 driver_os_version = 4;
775 driver_os_version = 6;
782 driver_os_version = 7;
787 driver_os_version = 8;
792 driver_os_version = 9;
799 FIXME(
"Unhandled OS version %lu.%lu, reporting Windows 8.1.\n",
802 driver_os_version = 10;
808 driver_os_version = 31;
813 FIXME(
"Unhandled OS version %lu.%lu, reporting Windows 7.\n",
815 driver_os_version = 8;
821 TRACE(
"GPU maximum feature level %#x.\n", feature_level);
822 switch (feature_level)
827 driver_feature_level = 5;
829 driver_feature_level = 10;
832 driver_feature_level = 11;
835 driver_feature_level = 12;
838 driver_feature_level = 13;
843 driver_feature_level = 14;
846 driver_feature_level = 15;
849 driver_feature_level = 16;
852 driver_feature_level = 17;
856 driver_feature_level = 21;
860 driver_feature_level =
min(driver_feature_level, 18);
862 driver_feature_level =
min(driver_feature_level, 14);
865 if (driver_os_version >= 30)
866 driver_feature_level = 0;
877 TRACE(
"Overriding amount of video memory with 0x%s bytes.\n",
886 if (driver_model < DRIVER_MODEL_NT6X && driver_info->vram_bytes >
LONG_MAX)
888 TRACE(
"Limiting amount of video memory to %#lx bytes for OS version older than Vista.\n",
LONG_MAX);
895 memory_status.dwLength =
sizeof(memory_status);
899 ERR(
"Failed to get global memory status.\n");
925 ERR(
"No driver version info found for device %04x:%04x, driver model %#x.\n",
933 static const struct wined3d_fallback_card
938 card_fallback_nvidia[] =
950 card_fallback_amd[] =
961 card_fallback_intel[] =
974 const struct wined3d_fallback_card *cards;
984 const struct wined3d_fallback_card *cards;
992 cards = fallbacks[
i].cards;
997 cards = card_fallback_nvidia;
1000 device_id = cards->device_id;
1001 for (
i = 0; cards[
i].feature_level; ++
i)
1003 if (feature_level >= cards[
i].feature_level)
1004 device_id = cards[
i].device_id;
1021 TRACE(
"wined3d %p, reporting %u adapters.\n",
1049 static unsigned int once;
1059 WARN(
"Invalid memory segment group %#x.\n",
group);
1079 FIXME(
"Returning fake video memory info.\n");
1082 FIXME(
"Ignoring node index %u.\n", node_idx);
1095 info->current_reservation = 0;
1148 static BOOL wrapped;
1152 new_notification =
calloc(1,
sizeof(*new_notification));
1153 if (!new_notification)
1160 if (cookie_counter < new_notification->
cookie)
1233 FIXME(
"wined3d %p, init_function %p stub!\n",
wined3d, init_function);
1259 TRACE(
"output %p, desc %p.\n", output,
desc);
1346 unsigned int count = 0;
1349 TRACE(
"output %p, format %s, scanline_ordering %#x.\n",
1377 TRACE(
"output %p, format %s, scanline_ordering %#x, mode_idx %u, mode %p.\n",
1394 *
mode = *wined3d_mode;
1398 TRACE(
"%ux%u@%u %u bpp, %s %#x.\n",
mode->width,
mode->height,
mode->refresh_rate,
1405 WARN(
"Invalid mode_idx %u.\n", mode_idx);
1412 unsigned int i,
j, mode_count, matching_mode_count, closest;
1417 TRACE(
"output %p, mode %p.\n", output,
mode);
1422 WARN(
"Output has 0 matching modes.\n");
1426 if (!(modes =
calloc(mode_count,
sizeof(*modes))))
1428 if (!(matching_modes =
calloc(mode_count,
sizeof(*matching_modes))))
1434 for (
i = 0;
i < mode_count; ++
i)
1439 free(matching_modes);
1443 matching_modes[
i] = &modes[
i];
1446 matching_mode_count = mode_count;
1450 for (
i = 0,
j = 0;
i < matching_mode_count; ++
i)
1453 matching_modes[
j++] = matching_modes[
i];
1456 matching_mode_count =
j;
1459 if (
mode->refresh_rate)
1461 for (
i = 0,
j = 0;
i < matching_mode_count; ++
i)
1464 matching_modes[
j++] = matching_modes[
i];
1467 matching_mode_count =
j;
1475 free(matching_modes);
1484 for (
i = 0,
j = 0;
i < matching_mode_count; ++
i)
1486 unsigned int d =
abs((
int)(
mode->width - matching_modes[
i]->
width))
1496 *
mode = *matching_modes[
j];
1498 free(matching_modes);
1501 TRACE(
"Returning %ux%u@%u %s %#x.\n",
mode->width,
mode->height,
1503 mode->scanline_ordering);
1510 TRACE(
"output %p.\n", output);
1520 TRACE(
"output %p, display_mode %p, rotation %p.\n", output,
mode, rotation);
1526 m.dmSize =
sizeof(
m);
1529 mode->width =
m.dmPelsWidth;
1530 mode->height =
m.dmPelsHeight;
1533 mode->refresh_rate =
m.dmDisplayFrequency;
1542 WARN(
"Overriding format %s with stored format %s.\n",
1557 switch (
m.dmDisplayOrientation)
1572 FIXME(
"Unhandled display rotation %#lx.\n",
m.dmDisplayOrientation);
1578 TRACE(
"Returning %ux%u@%u %s %#x.\n",
mode->width,
mode->height,
1580 mode->scanline_ordering);
1620 unsigned int adapter_idx, output_idx = 0;
1621 DEVMODEW current_mode, registry_mode;
1630 memset(¤t_mode, 0,
sizeof(current_mode));
1631 memset(®istry_mode, 0,
sizeof(registry_mode));
1632 current_mode.
dmSize =
sizeof(current_mode);
1633 registry_mode.
dmSize =
sizeof(registry_mode);
1634 display_device.
cb =
sizeof(display_device);
1639 ERR(
"Failed to read the current display mode for %s.\n",
1646 ERR(
"Failed to read the registry display mode for %s.\n",
1653 do_mode_change =
TRUE;
1663 ERR(
"Failed to restore all outputs to their registry display settings, error %ld.\n",
ret);
1669 TRACE(
"Skipping redundant mode setting call.\n");
1675 for (output_idx = 0; output_idx <
adapter->output_count; ++output_idx)
1677 output = &
adapter->outputs[output_idx];
1681 ERR(
"Failed to read the current display mode for %s.\n",
1701 TRACE(
"output %p, mode %p.\n", output,
mode);
1705 memset(&new_mode, 0,
sizeof(new_mode));
1706 new_mode.
dmSize =
sizeof(new_mode);
1707 memset(¤t_mode, 0,
sizeof(current_mode));
1708 current_mode.
dmSize =
sizeof(current_mode);
1717 if (
mode->refresh_rate)
1725 new_format_id =
mode->format_id;
1730 ERR(
"Failed to get current display mode.\n");
1734 TRACE(
"Skipping redundant mode setting call.\n");
1744 WARN(
"ChangeDisplaySettingsExW failed, trying without the refresh rate.\n");
1745 new_mode.
dmFields &= ~DM_DISPLAYFREQUENCY;
1763 TRACE(
"output %p, ramp %p.\n", output,
ramp);
1776 TRACE(
"output %p, ramp %p.\n", output,
ramp);
1817 LONGLONG freq_per_frame, freq_per_line;
1823 FIXME(
"output %p, raster_status %p semi-stub!\n", output, raster_status);
1825 WARN(
"output %p, raster_status %p semi-stub!\n", output, raster_status);
1839 mode.refresh_rate = 60;
1841 freq_per_frame = freq_per_sec.
QuadPart /
mode.refresh_rate;
1843 freq_per_line = freq_per_frame / (
mode.height + 20);
1844 raster_status->
scan_line = (
counter.QuadPart % freq_per_frame) / freq_per_line;
1853 TRACE(
"Returning fake value, in_vblank %u, scan_line %u.\n",
1866 TRACE(
"adapter %p, device_type %s, adapter_format %s, render_target_format %s, "
1867 "depth_stencil_format %s.\n",
1887 TRACE(
"Formats match.\n");
1891 TRACE(
"Unsupported format pair: %s and %s.\n",
1905 TRACE(
"adapter %p, device_type %s, surface_format %s, "
1906 "windowed %#x, multisample_type %#x, quality_levels %p.\n",
1908 windowed, multisample_type, quality_levels);
1916 FIXME(
"multisample_type %u not handled yet.\n", multisample_type);
1922 if (multisample_type && !(
format->multisample_types & 1u << (multisample_type - 1)))
1932 *quality_levels = 1;
1937 TRACE(
"Returning not supported.\n");
1948 return adapter->adapter_ops->adapter_check_format(
adapter, adapter_format,
NULL, ds_format);
1979 unsigned int format_caps = 0, format_attrs = 0;
1981 unsigned int allowed_bind_flags;
1984 TRACE(
"wined3d %p, adapter %p, device_type %s, adapter_format %s, usage %s, "
1985 "bind_flags %s, resource_type %s, check_format %s.\n",
1993 switch (resource_type)
2049 allowed_usage &= ~WINED3DUSAGE_QUERY_LEGACYBUMPMAP;
2050 allowed_bind_flags &= ~WINED3D_BIND_DEPTH_STENCIL;
2072 TRACE(
"Requested WINED3D_RTYPE_BUFFER, but format %s is typeless.\n",
debug_d3dformat(check_format_id));
2091 TRACE(
"Requested usage %#x, but resource type %s only allows %#x.\n",
2096 if ((bind_flags & allowed_bind_flags) != bind_flags)
2098 TRACE(
"Requested bind flags %s, but resource type %s only allows %s.\n",
2132 TRACE(
"Requested texturing support, but wined3d was created with WINED3D_NO3D.\n");
2136 if ((
format->attrs & format_attrs) != format_attrs)
2138 TRACE(
"Requested format attributes %#x, but format %s only has %#x.\n",
2143 for (; gl_type <= gl_type_end; ++gl_type)
2153 TRACE(
"Requested WINED3D_BIND_RENDER_TARGET, but format %s is not supported for render targets.\n",
2165 TRACE(
"Requested WINED3D_BIND_DEPTH_STENCIL, but format %s is not supported for depth/stencil buffers.\n",
2172 TRACE(
"Requested WINED3D_BIND_UNORDERED_ACCESS, but format %s is typeless.\n",
2177 if ((
caps & format_caps) != format_caps)
2179 TRACE(
"Requested format caps %#x, but format %s only has %#x.\n",
2185 mipmap_gen_supported =
FALSE;
2190 TRACE(
"No WINED3DUSAGE_AUTOGENMIPMAP support, returning WINED3DOK_NOAUTOGEN.\n");
2200 unsigned int row_pitch, slice_pitch;
2205 1,
width, 1, &row_pitch, &slice_pitch);
2217 TRACE(
"output %p, device_type %s, src_format %s, dst_format %s.\n",
2223 TRACE(
"Source format does not support blitting.\n");
2229 TRACE(
"Destination format does not support blitting.\n");
2237 TRACE(
"Source format is depth/stencil.\n");
2247 TRACE(
"Destination format is not a simple RGB format.\n");
2261 TRACE(
"wined3d %p, output %p, device_type %s, display_format %s, backbuffer_format %s, windowed %#x.\n",
2291 present_conversion =
FALSE;
2296 TRACE(
"Unsupported format combination %s / %s in windowed mode.\n",
2301 if (present_conversion)
2306 backbuffer_format = display_format;
2311 TRACE(
"Format conversion from %s to %s not supported.\n",
2324 TRACE(
"Unsupported format combination %s / %s.\n",
2332 TRACE(
"Unsupported format combination %s / %s.\n",
2340 TRACE(
"Unsupported format combination %s / %s.\n",
2348 TRACE(
"Unsupported format combination %s / %s.\n",
2357 backbuffer_format)))
2371 DWORD ckey_caps, blit_caps, fx_caps;
2375 TRACE(
"adapter %p, device_type %s, caps %p.\n",
2378 d3d_info = &
adapter->d3d_info;
2626 caps->
VS20Caps.static_flow_control_depth = 1;
2634 caps->
VS20Caps.dynamic_flow_control_depth = 0;
2636 caps->
VS20Caps.static_flow_control_depth = 0;
2672 caps->
PS20Caps.dynamic_flow_control_depth = 0;
2684 caps->
PS20Caps.dynamic_flow_control_depth = 0;
2686 caps->
PS20Caps.static_flow_control_depth = 0;
2687 caps->
PS20Caps.instruction_slot_count = 0;
2749 caps->
ddraw_caps.svb_color_key_caps = ckey_caps;
2752 caps->
ddraw_caps.vsb_color_key_caps = ckey_caps;
2755 caps->
ddraw_caps.ssb_color_key_caps = ckey_caps;
2785 TRACE(
"wined3d %p, adapter %p, device_type %#x, focus_window %p, flags %#x, "
2786 "surface_alignment %u, feature_levels %p, feature_level_count %u, device_parent %p, device %p.\n",
2795 TRACE(
"Created device %p.\n",
object);
2854 static const BOOL supported_extensions[] = {
TRUE};
2858 if (!(device_no3d =
calloc(1,
sizeof(*device_no3d))))
2862 flags, surface_alignment,
levels, level_count, supported_extensions, device_parent)))
2864 WARN(
"Failed to initialize device, hr %#lx.\n",
hr);
2887 if (!
device->context_count)
2919 WARN(
"Failed to initialise context.\n");
2925 ERR(
"Failed to add the newly created context to the context list.\n");
2930 TRACE(
"Initialised context %p.\n", context_no3d);
2934 ERR(
"Failed to create CPU blitter.\n");
2960 if (
data->buffer_object)
2962 ERR(
"Unsupported buffer object %p.\n",
data->buffer_object);
2972 if (
data->buffer_object)
2973 ERR(
"Unsupported buffer object %p.\n",
data->buffer_object);
2982 if (
dst->buffer_object)
2983 ERR(
"Unsupported dst buffer object %p.\n",
dst->buffer_object);
2984 if (
src->buffer_object)
2985 ERR(
"Unsupported src buffer object %p.\n",
src->buffer_object);
2986 if (
dst->buffer_object ||
src->buffer_object)
2989 for (
i = 0;
i < range_count; ++
i)
3015 TRACE(
"device %p, desc %p, state_parent %p, parent %p, parent_ops %p, swapchain %p.\n",
3018 if (!(swapchain_no3d =
calloc(1,
sizeof(*swapchain_no3d))))
3024 WARN(
"Failed to initialise swapchain, hr %#lx.\n",
hr);
3025 free(swapchain_no3d);
3029 TRACE(
"Created swapchain %p.\n", swapchain_no3d);
3030 *swapchain = swapchain_no3d;
3048 TRACE(
"device %p, desc %p, data %p, parent %p, parent_ops %p, buffer %p.\n",
3051 if (!(buffer_no3d =
calloc(1,
sizeof(*buffer_no3d))))
3056 WARN(
"Failed to initialise buffer, hr %#lx.\n",
hr);
3061 TRACE(
"Created buffer %p.\n", buffer_no3d);
3093 TRACE(
"device %p, desc %p, layer_count %u, level_count %u, flags %#x, parent %p, parent_ops %p, texture %p.\n",
3102 WARN(
"Failed to initialise texture, hr %#lx.\n",
hr);
3107 TRACE(
"Created texture %p.\n", texture_no3d);
3128 texture->resource.parent_ops->wined3d_object_destroyed(
texture->resource.parent);
3144 TRACE(
"desc %s, resource %p, parent %p, parent_ops %p, view %p.\n",
3147 if (!(view_no3d =
calloc(1,
sizeof(*view_no3d))))
3152 WARN(
"Failed to initialise view, hr %#lx.\n",
hr);
3157 TRACE(
"Created render target view %p.\n", view_no3d);
3186 TRACE(
"desc %s, resource %p, parent %p, parent_ops %p, view %p.\n",
3201 TRACE(
"desc %s, resource %p, parent %p, parent_ops %p, view %p.\n",
3215 TRACE(
"device %p, desc %p, parent %p, parent_ops %p, sampler %p.\n",
3229 TRACE(
"device %p, type %#x, parent %p, parent_ops %p, query %p.\n",
3321 TRACE(
"ordinal %u, wined3d_creation_flags %#x.\n", ordinal, wined3d_creation_flags);
3327 luid = &primary_luid;
3387 unsigned int output_idx = 0, primary_idx = 0;
3402 WARN(
"Allocating a random LUID.\n");
3416 display_device.
cb =
sizeof(display_device);
3424 primary_idx =
adapter->output_count;
3436 adapter->outputs[0].ordinal = 0;
3437 adapter->outputs[primary_idx] = tmp;
3438 adapter->outputs[primary_idx].ordinal = primary_idx;
3445 adapter->adapter_ops = adapter_ops;
3450 for (output_idx = 0; output_idx <
adapter->output_count; ++output_idx)
3482 TRACE(
"Initialising adapters.\n");
3486 WARN(
"Failed to create adapter.\n");
HRESULT WINAPI DECLSPEC_HOTPATCH SetThreadDescription(_In_ HANDLE hThread, _In_ PCWSTR lpThreadDescription)
COMPILER_DEPENDENT_INT64 INT64
COMPILER_DEPENDENT_UINT64 UINT64
struct wined3d_adapter * wined3d_adapter_gl_create(unsigned int ordinal, unsigned int wined3d_creation_flags)
struct wined3d_adapter * wined3d_adapter_vk_create(unsigned int ordinal, unsigned int wined3d_creation_flags)
#define InterlockedIncrement
#define InterlockedDecrement
#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_head(struct list_entry *head, struct list_entry *entry)
#define STDMETHODCALLTYPE
void wined3d_cs_destroy_object(struct wined3d_cs *cs, void(*callback)(void *object), void *object)
static LONG cookie_counter
HRESULT wined3d_buffer_no3d_init(struct wined3d_buffer *buffer_no3d, 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)
void wined3d_buffer_cleanup(struct wined3d_buffer *buffer)
void wined3d_context_cleanup(struct wined3d_context *context)
HRESULT wined3d_context_no3d_init(struct wined3d_context *context_no3d, struct wined3d_swapchain *swapchain)
ULONG CDECL wined3d_device_decref(struct wined3d_device *device)
HRESULT wined3d_device_init(struct wined3d_device *device, struct wined3d *wined3d, unsigned int adapter_idx, enum wined3d_device_type device_type, HWND focus_window, unsigned int flags, BYTE surface_alignment, const enum wined3d_feature_level *levels, unsigned int level_count, const BOOL *supported_extensions, struct wined3d_device_parent *device_parent)
BOOL device_context_add(struct wined3d_device *device, struct wined3d_context *context)
void wined3d_device_cleanup(struct wined3d_device *device)
void device_context_remove(struct wined3d_device *device, struct wined3d_context *context)
ULONG CDECL wined3d_device_incref(struct wined3d_device *device)
const struct wined3d_shader_backend_ops none_shader_backend
struct wined3d_blitter * wined3d_cpu_blitter_create(void)
void wined3d_texture_cleanup(struct wined3d_texture *texture)
void wined3d_texture_sub_resources_destroyed(struct wined3d_texture *texture)
HRESULT wined3d_texture_no3d_init(struct wined3d_texture *texture_no3d, struct wined3d_device *device, const struct wined3d_resource_desc *desc, unsigned int layer_count, unsigned int level_count, uint32_t flags, void *parent, const struct wined3d_parent_ops *parent_ops)
const char * debug_d3dusage(uint32_t usage)
BOOL wined3d_get_primary_adapter_luid(LUID *luid)
const char * wined3d_debug_bind_flags(uint32_t bind_flags)
const char * debug_d3ddevicetype(enum wined3d_device_type device_type)
BOOL wined3d_adapter_no3d_init_format_info(struct wined3d_adapter *adapter)
const char * debug_d3dformat(enum wined3d_format_id format_id)
const char * debug_uvec4(const struct wined3d_uvec4 *v)
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_array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, SIZE_T size)
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 * wined3d_debug_view_desc(const struct wined3d_view_desc *d, const struct wined3d_resource *resource)
enum wined3d_format_id pixelformat_for_depth(DWORD depth)
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)
void wined3d_rendertarget_view_cleanup(struct wined3d_rendertarget_view *view)
BOOL WINAPI AllocateLocallyUniqueId(PLUID Luid)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
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)
BOOL WINAPI GetVersionExW(IN LPOSVERSIONINFOW lpVersionInformation)
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
_ACRTIMP size_t __cdecl strlen(const char *)
static const WCHAR device_name[]
void state_nop(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
const struct wined3d_vertex_pipe_ops none_vertex_pipe
const struct wined3d_fragment_pipe_ops none_fragment_pipe
#define GL_NEAREST_MIPMAP_NEAREST
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
#define GL_NEAREST_MIPMAP_LINEAR
#define GL_LINEAR_MIPMAP_LINEAR
#define GL_LINEAR_MIPMAP_NEAREST
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei width
GLenum const GLvoid * addr
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
BOOL NTAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer)
static D3D_DRIVER_TYPE HMODULE UINT const D3D_FEATURE_LEVEL * feature_levels
#define InterlockedExchangeAddSizeT(a, b)
#define memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
static const char * dst_format
static const BYTE ramp[17]
#define STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE
#define STATUS_PROCEDURE_NOT_FOUND
#define DISP_CHANGE_SUCCESSFUL
#define ENUM_REGISTRY_SETTINGS
BOOL WINAPI EnumDisplayMonitors(_In_opt_ HDC, _In_opt_ LPCRECT, _In_ MONITORENUMPROC, _In_ LPARAM)
#define ENUM_CURRENT_SETTINGS
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId
UINT PhysicalAdapterIndex
D3DKMT_MEMORY_SEGMENT_GROUP MemorySegmentGroup
UINT64 CurrentReservation
UINT64 AvailableForReservation
const D3DKMT_VIDPNSOURCEOWNER_TYPE * pType
const D3DDDI_VIDEO_PRESENT_SOURCE_ID * pVidPnSourceId
ULONG dwOSVersionInfoSize
DWORD dmDisplayOrientation
unsigned int max_blend_stages
unsigned int PrimitiveMiscCaps
unsigned int max_textures
unsigned int TextureOpCaps
unsigned int vs_uniform_count
const struct wined3d_adapter * adapter
UINT64 last_non_local_budget
unsigned int description_size
SIZE_T shared_system_memory
LARGE_INTEGER driver_version
DWORD MaxPShaderInstructionsExecuted
BOOL viewport_array_index_any_shader
DWORD MaxVertexBlendMatrices
DWORD MaxVertexShader30InstructionSlots
DWORD MaxTextureBlendStages
struct wined3d_vertex_shader_caps VS20Caps
DWORD StretchRectFilterCaps
DWORD VolumeTextureAddressCaps
float PixelShader1xMaxValue
DWORD MaxVertexBlendMatrixIndex
DWORD VertexProcessingCaps
DWORD MaxPixelShader30InstructionSlots
float MaxNpatchTessellationLevel
DWORD VolumeTextureFilterCaps
enum wined3d_feature_level max_feature_level
struct wined3d_pixel_shader_caps PS20Caps
DWORD VertexShaderVersion
enum wined3d_device_type DeviceType
DWORD VertexTextureFilterCaps
DWORD CubeTextureFilterCaps
DWORD MaxTextureAspectRatio
DWORD MaxSimultaneousTextures
struct wined3d_ddraw_caps ddraw_caps
DWORD MaxVertexShaderConst
BOOL shader_double_precision
DWORD MaxVShaderInstructionsExecuted
struct wined3d_swapchain * swapchain
unsigned int sub_resource_idx
uint32_t viewport_array_index_any_shader
enum wined3d_feature_level feature_level
struct wined3d_d3d_limits limits
uint32_t shader_double_precision
uint32_t wined3d_creation_flags
uint32_t unconditional_npot
struct wined3d_context context_no3d
struct wined3d_device_parent * device_parent
unsigned char surface_alignment
enum wined3d_format_id format_id
enum wined3d_scanline_ordering scanline_ordering
unsigned int version_high
enum wined3d_pci_vendor vendor
enum wined3d_pci_device device
char description[WINED3D_MAX_DEVICE_IDENTIFIER_LENGTH]
enum wined3d_pci_vendor vendor
enum wined3d_pci_device device
enum wined3d_display_driver driver
D3DDDI_VIDEO_PRESENT_SOURCE_ID vidpn_source_id
struct wined3d_adapter * adapter
struct wined3d_display_mode * modes
WCHAR device_name[CCHDEVICENAME]
enum wined3d_format_id screen_format
const struct wined3d_parent_ops * parent_ops
unsigned short pci_vendor_id
UINT64 emulated_textureram
enum wined3d_renderer renderer
unsigned short pci_device_id
const struct wined3d_parent_ops * parent_ops
DWORD vertex_processing_caps
DWORD max_user_clip_planes
DWORD max_vertex_blend_matrix_index
DWORD max_vertex_blend_matrices
unsigned int adapter_count
struct wined3d_adapter * adapters[1]
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 STATUS_INVALID_PARAMETER
struct _LARGE_INTEGER::@2741 u
static char * output_name
static WORD const char * driver
LONG WINAPI ChangeDisplaySettingsExW(LPCWSTR lpszDeviceName, LPDEVMODEW lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam)
BOOL WINAPI EnumDisplayDevicesW(LPCWSTR lpDevice, DWORD iDevNum, PDISPLAY_DEVICEW lpDisplayDevice, DWORD dwFlags)
BOOL WINAPI EnumDisplaySettingsW(LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode)
BOOL WINAPI EnumDisplaySettingsExW(LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode, DWORD dwFlags)
DWORD WINAPI GetLastError(void)
HANDLE WINAPI GetCurrentThread(void)
NTSTATUS WINAPI D3DKMTCreateDevice(D3DKMT_CREATEDEVICE *desc)
enum _D3DKMT_MEMORY_SEGMENT_GROUP D3DKMT_MEMORY_SEGMENT_GROUP
NTSTATUS WINAPI D3DKMTCloseAdapter(const D3DKMT_CLOSEADAPTER *desc)
NTSTATUS WINAPI D3DKMTOpenAdapterFromLuid(D3DKMT_OPENADAPTERFROMLUID *desc)
NTSTATUS WINAPI D3DKMTOpenAdapterFromGdiDisplayName(D3DKMT_OPENADAPTERFROMGDIDISPLAYNAME *desc)
NTSTATUS WINAPI D3DKMTDestroyDevice(const D3DKMT_DESTROYDEVICE *desc)
NTSTATUS WINAPI D3DKMTQueryVideoMemoryInfo(D3DKMT_QUERYVIDEOMEMORYINFO *desc)
enum _D3DKMT_VIDPNSOURCEOWNER_TYPE D3DKMT_VIDPNSOURCEOWNER_TYPE
@ D3DKMT_VIDPNSOURCEOWNER_EXCLUSIVE
@ D3DKMT_VIDPNSOURCEOWNER_SHARED
NTSTATUS WINAPI D3DKMTSetVidPnSourceOwner(const D3DKMT_SETVIDPNSOURCEOWNER *desc)
static HRESULT wined3d_output_init(struct wined3d_output *output, unsigned int ordinal, struct wined3d_adapter *adapter, const WCHAR *device_name)
static const struct driver_version_information driver_version_table[]
unsigned int CDECL wined3d_adapter_get_output_count(const struct wined3d_adapter *adapter)
ULONG CDECL wined3d_decref(struct wined3d *wined3d)
static void adapter_no3d_destroy_swapchain(struct wined3d_swapchain *swapchain)
static const struct wined3d_adapter_ops wined3d_adapter_no3d_ops
const struct wined3d_gpu_description * wined3d_get_gpu_description(enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
static void adapter_no3d_destroy_device(struct wined3d_device *device)
static HRESULT adapter_no3d_create_texture(struct wined3d_device *device, const struct wined3d_resource_desc *desc, unsigned int layer_count, unsigned int level_count, uint32_t flags, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_texture **texture)
HRESULT wined3d_output_get_gamma_ramp(struct wined3d_output *output, struct wined3d_gamma_ramp *ramp)
static const struct driver_version_information * get_driver_version_info(enum wined3d_display_driver driver, enum wined3d_driver_model driver_model)
static const struct wined3d_gpu_description gpu_description_table[]
UINT CDECL wined3d_get_adapter_count(const struct wined3d *wined3d)
static HRESULT adapter_no3d_create_query(struct wined3d_device *device, enum wined3d_query_type type, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query)
void wined3d_adapter_cleanup(struct wined3d_adapter *adapter)
static struct wined3d_adapter * wined3d_adapter_create(unsigned int ordinal, DWORD wined3d_creation_flags)
HRESULT CDECL wined3d_output_set_display_mode(struct wined3d_output *output, const struct wined3d_display_mode *mode)
#define DEFAULT_REFRESH_RATE
static BOOL adapter_no3d_check_format(const struct wined3d_adapter *adapter, const struct wined3d_format *adapter_format, const struct wined3d_format *rt_format, const struct wined3d_format *ds_format)
static bool mode_matches_filter(const struct wined3d_adapter *adapter, const struct wined3d_display_mode *mode, const struct wined3d_format *format, enum wined3d_scanline_ordering scanline_ordering)
HRESULT CDECL wined3d_adapter_get_video_memory_info(const struct wined3d_adapter *adapter, unsigned int node_idx, enum wined3d_memory_segment_group group, struct wined3d_video_memory_info *info)
static BOOL wined3d_adapter_create_output(struct wined3d_adapter *adapter, const WCHAR *output_name)
static void adapter_no3d_flush_bo_address(struct wined3d_context *context, const struct wined3d_const_bo_address *data, size_t size)
static void wined3d_adapter_no3d_init_d3d_info(struct wined3d_adapter *adapter, unsigned int wined3d_creation_flags)
static const struct wined3d_state_entry_template misc_state_template_no3d[]
static HRESULT adapter_no3d_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)
HRESULT CDECL wined3d_restore_display_modes(struct wined3d *wined3d)
struct wined3d_adapter *CDECL wined3d_output_get_adapter(const struct wined3d_output *output)
HRESULT CDECL wined3d_adapter_register_budget_change_notification(const struct wined3d_adapter *adapter, HANDLE event, DWORD *cookie)
static void adapter_no3d_uninit_3d(struct wined3d_device *device)
HRESULT CDECL wined3d_output_get_desc(const struct wined3d_output *output, struct wined3d_output_desc *desc)
static HRESULT adapter_no3d_create_buffer(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)
static void * adapter_no3d_map_bo_address(struct wined3d_context *context, const struct wined3d_bo_address *data, size_t size, uint32_t map_flags)
static HRESULT adapter_no3d_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)
static void adapter_no3d_destroy_shader_resource_view(struct wined3d_shader_resource_view *view)
static void adapter_no3d_destroy_buffer(struct wined3d_buffer *buffer)
ULONG CDECL wined3d_incref(struct wined3d *wined3d)
static BOOL wined3d_check_depth_stencil_format(const struct wined3d_adapter *adapter, const struct wined3d_format *adapter_format, const struct wined3d_format *ds_format, enum wined3d_gl_resource_type gl_type)
ssize_t adapter_adjust_mapped_memory(struct wined3d_adapter *adapter, ssize_t size)
HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d, const struct wined3d_adapter *adapter, enum wined3d_device_type device_type, enum wined3d_format_id adapter_format_id, uint32_t usage, unsigned int bind_flags, enum wined3d_resource_type resource_type, enum wined3d_format_id check_format_id)
static void wined3d_output_cleanup(const struct wined3d_output *output)
HRESULT CDECL wined3d_get_device_caps(const struct wined3d_adapter *adapter, enum wined3d_device_type device_type, struct wined3d_caps *caps)
unsigned int CDECL wined3d_output_get_mode_count(struct wined3d_output *output, enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering, bool cached)
HRESULT CDECL wined3d_check_device_format_conversion(const struct wined3d_output *output, enum wined3d_device_type device_type, enum wined3d_format_id src_format_id, enum wined3d_format_id dst_format_id)
static BOOL CALLBACK enum_monitor_proc(HMONITOR monitor, HDC hdc, RECT *rect, LPARAM lparam)
HRESULT CDECL wined3d_adapter_unregister_budget_change_notification(DWORD cookie)
static DWORD CALLBACK notification_thread_func(void *stop_event)
static void STDMETHODCALLTYPE wined3d_null_wined3d_object_destroyed(void *parent)
static struct list adapter_budget_change_notifications
static void adapter_no3d_destroy_rendertarget_view(struct wined3d_rendertarget_view *view)
static void adapter_no3d_destroy_texture(struct wined3d_texture *texture)
static HRESULT adapter_no3d_create_swapchain(struct wined3d_device *device, const struct wined3d_swapchain_desc *desc, struct wined3d_swapchain_state_parent *state_parent, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_swapchain **swapchain)
static void wined3d_output_update_modes(struct wined3d_output *output, bool cached)
static void adapter_no3d_dispatch_compute(struct wined3d_device *device, const struct wined3d_state *state, const struct wined3d_dispatch_parameters *parameters)
HRESULT CDECL wined3d_register_software_device(struct wined3d *wined3d, void *init_function)
static void wined3d_copy_name(char *dst, const char *src, unsigned int dst_size)
HRESULT CDECL wined3d_check_device_multisample_type(const struct wined3d_adapter *adapter, enum wined3d_device_type device_type, enum wined3d_format_id surface_format_id, BOOL windowed, enum wined3d_multisample_type multisample_type, unsigned int *quality_levels)
const struct min_lookup minMipLookup[]
static HRESULT adapter_no3d_init_3d(struct wined3d_device *device)
HRESULT CDECL wined3d_output_set_gamma_ramp(struct wined3d_output *output, const struct wined3d_gamma_ramp *ramp)
void CDECL wined3d_output_release_ownership(const struct wined3d_output *output)
HRESULT CDECL wined3d_device_create(struct wined3d *wined3d, struct wined3d_adapter *adapter, enum wined3d_device_type device_type, HWND focus_window, uint32_t flags, BYTE surface_alignment, const enum wined3d_feature_level *feature_levels, unsigned int feature_level_count, struct wined3d_device_parent *device_parent, struct wined3d_device **device)
static void adapter_no3d_destroy(struct wined3d_adapter *adapter)
static void adapter_no3d_clear_uav(struct wined3d_context *context, struct wined3d_unordered_access_view *view, const struct wined3d_uvec4 *clear_value, bool fp)
static void adapter_no3d_flush_context(struct wined3d_context *context)
HRESULT CDECL wined3d_adapter_get_identifier(const struct wined3d_adapter *adapter, uint32_t flags, struct wined3d_adapter_identifier *identifier)
static void adapter_no3d_destroy_sampler(struct wined3d_sampler *sampler)
static void adapter_no3d_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)
HRESULT CDECL wined3d_output_get_mode(struct wined3d_output *output, enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering, unsigned int mode_idx, struct wined3d_display_mode *mode, bool cached)
struct wined3d_adapter *CDECL wined3d_get_adapter(const struct wined3d *wined3d, unsigned int idx)
static void adapter_no3d_destroy_query(struct wined3d_query *query)
static HANDLE notification_thread_stop_event
unsigned int CDECL wined3d_calculate_format_pitch(const struct wined3d_adapter *adapter, enum wined3d_format_id format_id, unsigned int width)
struct wined3d_output *CDECL wined3d_adapter_get_output(const struct wined3d_adapter *adapter, unsigned int idx)
static HRESULT adapter_no3d_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)
static HRESULT adapter_no3d_create_sampler(struct wined3d_device *device, const struct wined3d_sampler_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_sampler **sampler)
static void adapter_no3d_get_wined3d_caps(const struct wined3d_adapter *adapter, struct wined3d_caps *caps)
HRESULT CDECL wined3d_output_take_ownership(const struct wined3d_output *output, BOOL exclusive)
static void adapter_no3d_destroy_bo(struct wined3d_context *context, struct wined3d_bo *bo)
static const GUID IID_D3DDEVICE_D3DUID
BOOL wined3d_adapter_init(struct wined3d_adapter *adapter, unsigned int ordinal, const LUID *luid, const struct wined3d_adapter_ops *adapter_ops)
bool wined3d_driver_info_init(struct wined3d_driver_info *driver_info, const struct wined3d_gpu_description *gpu_desc, enum wined3d_feature_level feature_level, UINT64 vram_bytes, UINT64 sysmem_bytes)
static BOOL wined3d_check_surface_format(const struct wined3d_format *format)
static void adapter_no3d_destroy_unordered_access_view(struct wined3d_unordered_access_view *view)
const struct wined3d_parent_ops wined3d_null_parent_ops
static struct wined3d_context * adapter_no3d_acquire_context(struct wined3d_device *device, struct wined3d_texture *texture, unsigned int sub_resource_idx)
HRESULT CDECL wined3d_check_depth_stencil_match(const struct wined3d_adapter *adapter, enum wined3d_device_type device_type, enum wined3d_format_id adapter_format_id, enum wined3d_format_id render_target_format_id, enum wined3d_format_id depth_stencil_format_id)
static void adapter_no3d_draw_primitive(struct wined3d_device *device, const struct wined3d_state *state, const struct wined3d_draw_parameters *parameters)
static bool adapter_no3d_alloc_bo(struct wined3d_device *device, struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_bo_address *addr)
const struct wined3d_gpu_description * wined3d_get_user_override_gpu_description(enum wined3d_pci_vendor vendor, enum wined3d_pci_device device)
static HRESULT adapter_no3d_create_device(struct wined3d *wined3d, const struct wined3d_adapter *adapter, enum wined3d_device_type device_type, HWND focus_window, unsigned int flags, BYTE surface_alignment, const enum wined3d_feature_level *levels, unsigned int level_count, struct wined3d_device_parent *device_parent, struct wined3d_device **device)
UINT64 adapter_adjust_memory(struct wined3d_adapter *adapter, INT64 amount)
HRESULT CDECL wined3d_output_find_closest_matching_mode(struct wined3d_output *output, struct wined3d_display_mode *mode)
static struct wined3d_adapter * wined3d_adapter_no3d_create(unsigned int ordinal, unsigned int wined3d_creation_flags)
static void adapter_no3d_unmap_bo_address(struct wined3d_context *context, const struct wined3d_bo_address *data, unsigned int range_count, const struct wined3d_range *ranges)
HRESULT CDECL wined3d_output_get_display_mode(const struct wined3d_output *output, struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation)
static BOOL equal_display_mode(const DEVMODEW *mode1, const DEVMODEW *mode2)
HRESULT CDECL wined3d_check_device_type(const struct wined3d *wined3d, struct wined3d_output *output, enum wined3d_device_type device_type, enum wined3d_format_id display_format, enum wined3d_format_id backbuffer_format, BOOL windowed)
HRESULT wined3d_init(struct wined3d *wined3d, uint32_t flags)
HRESULT CDECL wined3d_output_get_raster_status(const struct wined3d_output *output, struct wined3d_raster_status *raster_status)
enum wined3d_pci_device wined3d_gpu_from_feature_level(enum wined3d_pci_vendor *vendor, enum wined3d_feature_level feature_level)
static void adapter_no3d_release_context(struct wined3d_context *context)
static HANDLE notification_thread
HRESULT wined3d_swapchain_no3d_init(struct wined3d_swapchain *swapchain_no3d, struct wined3d_device *device, const struct wined3d_swapchain_desc *desc, struct wined3d_swapchain_state_parent *state_parent, void *parent, const struct wined3d_parent_ops *parent_ops)
void wined3d_swapchain_cleanup(struct wined3d_swapchain *swapchain)
#define WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH
#define WINED3DSTENCILCAPS_ZERO
#define WINED3DPMISCCAPS_MASKZ
#define WINED3DPMISCCAPS_CULLCW
#define WINED3DPSHADECAPS_FOGGOURAUD
#define WINED3DSTENCILCAPS_KEEP
#define WINEDDCAPS_BLTSTRETCH
#define WINED3DPTADDRESSCAPS_WRAP
#define WINED3DVS20_MIN_NUMTEMPS
#define WINED3DPRASTERCAPS_FOGVERTEX
#define WINEDDSCAPS_PRIMARYSURFACE
#define WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL
#define WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH
#define WINED3DUSAGE_QUERY_LEGACYBUMPMAP
#define WINED3DPBLENDCAPS_INVSRCALPHA
#define WINED3DPRASTERCAPS_FOGTABLE
#define WINEDDCAPS_COLORKEY
@ WINED3D_MULTISAMPLE_NON_MASKABLE
@ WINED3D_MULTISAMPLE_16_SAMPLES
@ WINED3D_MULTISAMPLE_NONE
#define WINED3DPS20_MIN_NUMTEMPS
#define WINED3DPCMPCAPS_LESSEQUAL
#define WINED3DPBLENDCAPS_INVDESTCOLOR
#define WINED3DDEVCAPS_TEXTURESYSTEMMEMORY
#define WINED3DDEVCAPS_TEXTUREVIDEOMEMORY
#define WINED3DDEVCAPS_DRAWPRIMITIVES2
#define WINED3DPCMPCAPS_NEVER
#define WINED3DENUM_WHQL_LEVEL
#define WINED3DCAPS2_DYNAMICTEXTURES
#define WINED3DPRASTERCAPS_WFOG
@ WINED3D_RS_DITHERENABLE
@ WINED3D_RS_MULTISAMPLEANTIALIAS
#define WINED3DDEVCAPS_PUREDEVICE
#define WINED3DPSHADECAPS_COLORFLATRGB
#define WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
#define WINEDDCKEYCAPS_DESTBLT
#define WINEDDSCAPS_ZBUFFER
#define WINED3DPTFILTERCAPS_LINEARMIPNEAREST
#define WINED3DVS20CAPS_PREDICATION
#define WINEDDFXCAPS_BLTROTATION90
#define WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS
#define WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH
#define WINED3DPTFILTERCAPS_MAGFLINEAR
#define WINED3DPTADDRESSCAPS_INDEPENDENTUV
#define WINED3DPTFILTERCAPS_MIPNEAREST
#define WINED3DUSAGE_LEGACY_CUBEMAP
#define WINED3D_BIND_VERTEX_BUFFER
#define WINED3DLINECAPS_BLEND
#define WINED3DCAPS2_CANRENDERWINDOWED
#define WINED3DPBLENDCAPS_ZERO
#define WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD
#define WINED3DPTADDRESSCAPS_CLAMP
@ WINED3D_RTYPE_TEXTURE_2D
@ WINED3D_RTYPE_TEXTURE_1D
@ WINED3D_RTYPE_TEXTURE_3D
#define WINEDDFXCAPS_BLTSTRETCHX
#define WINED3DPBLENDCAPS_SRCALPHASAT
#define WINEDDFXCAPS_BLTSHRINKYN
#define WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY
#define WINED3DCAPS2_FULLSCREENGAMMA
wined3d_memory_segment_group
@ WINED3D_MEMORY_SEGMENT_GROUP_NON_LOCAL
@ WINED3D_MEMORY_SEGMENT_GROUP_LOCAL
#define WINED3DPSHADECAPS_ALPHAGOURAUDBLEND
#define WINED3DSTENCILCAPS_REPLACE
#define WINEDDSCAPS_OFFSCREENPLAIN
#define WINED3DSTENCILCAPS_INCRSAT
#define WINED3DPRASTERCAPS_ZTEST
#define WINED3DPTFILTERCAPS_MIPFLINEAR
#define WINED3DPTEXTURECAPS_ALPHA
#define WINED3DPMISCCAPS_CULLNONE
#define WINED3D_BIND_UNORDERED_ACCESS
#define WINED3DERR_NOTAVAILABLE
#define WINED3DPS20CAPS_PREDICATION
#define WINED3DPTEXTURECAPS_POW2
#define WINED3DDEVCAPS_DRAWPRIMTLVERTEX
#define WINED3DUSAGE_QUERY_SRGBREAD
#define WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH
#define WINEDDFXCAPS_BLTSTRETCHYN
#define WINED3DLINECAPS_ZTEST
#define WINED3DPTEXTURECAPS_BORDER
#define WINED3DPMISCCAPS_CULLCCW
#define WINED3DDTCAPS_SHORT4N
#define WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH
#define WINEDDSCAPS_PALETTE
#define WINEDDCAPS_BLTDEPTHFILL
#define WINEDDCAPS_CANCLIP
#define WINED3DLINECAPS_FOG
#define WINED3DPSHADECAPS_SPECULARFLATRGB
#define WINED3DUSAGE_QUERY_FILTER
#define WINED3DPRASTERCAPS_ZFOG
#define WINED3DSTENCILCAPS_DECRSAT
#define WINEDDCAPS_COLORKEYHWASSIST
#define WINED3DPBLENDCAPS_SRCCOLOR
#define WINED3DDEVCAPS_FLOATTLVERTEX
#define WINEDDCAPS_BLTCOLORFILL
#define WINED3DPRASTERCAPS_SUBPIXEL
#define WINED3DDEVCAPS_EXECUTESYSTEMMEMORY
#define WINED3DPTEXTURECAPS_TRANSPARENCY
#define WINED3D_BIND_SHADER_RESOURCE
#define WINED3DPRASTERCAPS_STIPPLE
#define WINED3DPS20CAPS_ARBITRARYSWIZZLE
#define WINED3DPCMPCAPS_LESS
#define WINED3DPSHADECAPS_SPECULARGOURAUDRGB
#define WINED3DPSHADECAPS_COLORGOURAUDRGB
#define WINED3DPTFILTERCAPS_LINEARMIPLINEAR
#define WINED3DUSAGE_QUERY_WRAPANDMIP
@ WINED3DFMT_B8G8R8A8_UNORM
@ WINED3DFMT_B8G8R8X8_UNORM
@ WINED3DFMT_B5G5R5X1_UNORM
@ WINED3DFMT_B10G10R10A2_UNORM
@ WINED3DFMT_B5G5R5A1_UNORM
@ WINED3DFMT_B5G6R5_UNORM
#define WINEDDSCAPS_TEXTURE
#define WINEDDCAPS2_CERTIFIED
#define WINED3D_MAX_STREAMS
#define WINED3DPTEXTURECAPS_MIPMAP
#define WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING
@ WINED3D_RENDERER_VULKAN
#define WINED3DPBLENDCAPS_DESTCOLOR
#define WINEDDCAPS2_NOPAGELOCKREQUIRED
#define WINED3DDEVCAPS_HWRASTERIZATION
#define WINEDDFXCAPS_BLTSHRINKXN
#define WINED3DPRASTERCAPS_PAT
#define WINEDDFXCAPS_BLTMIRRORUPDOWN
#define WINEDDFXCAPS_BLTSTRETCHXN
#define WINED3DPSHADECAPS_ALPHAFLATBLEND
#define WINED3D_BIND_DEPTH_STENCIL
#define WINED3DPBLENDCAPS_ONE
#define WINED3DCAPS3_COPY_TO_VIDMEM
#define WINED3D_PRESENT_CONVERSION
#define WINED3DPTFILTERCAPS_NEAREST
#define WINEDDCAPS_PALETTE
#define WINED3DPRASTERCAPS_DEPTHBIAS
#define WINEDDCAPS_CANBLTSYSMEM
#define WINED3DPTFILTERCAPS_MAGFPOINT
#define WINEDDCAPS_CANCLIPSTRETCHED
#define WINED3DMIN30SHADERINSTRUCTIONS
#define WINED3DDEVCAPS_CANRENDERAFTERFLIP
#define WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
#define WINED3DPTFILTERCAPS_LINEAR
#define WINED3DPS20CAPS_GRADIENTINSTRUCTIONS
#define WINED3DPRASTERCAPS_DITHER
wined3d_scanline_ordering
@ WINED3D_SCANLINE_ORDERING_UNKNOWN
@ WINED3D_SCANLINE_ORDERING_INTERLACED
@ WINED3D_SCANLINE_ORDERING_PROGRESSIVE
#define WINED3DPTEXTURECAPS_PERSPECTIVE
@ WINED3D_FEATURE_LEVEL_11
@ WINED3D_FEATURE_LEVEL_10_1
@ WINED3D_FEATURE_LEVEL_8
@ WINED3D_FEATURE_LEVEL_7
@ WINED3D_FEATURE_LEVEL_6
@ WINED3D_FEATURE_LEVEL_9_3
@ WINED3D_FEATURE_LEVEL_10
@ WINED3D_FEATURE_LEVEL_NONE
@ WINED3D_FEATURE_LEVEL_11_1
@ WINED3D_FEATURE_LEVEL_5
@ WINED3D_FEATURE_LEVEL_9_1
@ WINED3D_FEATURE_LEVEL_9_2
#define WINED3DCURSORCAPS_COLOR
@ WINED3D_SHADER_TYPE_HULL
@ WINED3D_SHADER_TYPE_PIXEL
@ WINED3D_SHADER_TYPE_GEOMETRY
@ WINED3D_SHADER_TYPE_DOMAIN
@ WINED3D_SHADER_TYPE_COMPUTE
@ WINED3D_SHADER_TYPE_VERTEX
#define WINEDDFXCAPS_BLTSHRINKX
#define WINED3DDTCAPS_UBYTE4N
#define WINED3DPBLENDCAPS_BOTHINVSRCALPHA
#define WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT
#define WINED3DCURSORCAPS_LOWRES
#define WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS
#define WINED3DSTENCILCAPS_INVERT
#define WINED3DPTFILTERCAPS_MIPLINEAR
#define WINEDDCAPS2_CANRENDERWINDOWED
#define WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS
#define WINED3DPTEXTURECAPS_PROJECTED
#define WINED3D_BIND_RENDER_TARGET
#define WINED3DPCMPCAPS_GREATEREQUAL
#define WINED3DDTCAPS_SHORT2N
@ WINED3D_DISPLAY_ROTATION_270
@ WINED3D_DISPLAY_ROTATION_0
@ WINED3D_DISPLAY_ROTATION_180
@ WINED3D_DISPLAY_ROTATION_UNSPECIFIED
@ WINED3D_DISPLAY_ROTATION_90
#define WINED3DPTFILTERCAPS_MINFPOINT
#define WINED3DUSAGE_QUERY_VERTEXTEXTURE
#define WINED3DPBLENDCAPS_INVSRCCOLOR
#define WINED3DUSAGE_QUERY_GENMIPMAP
#define WINEDDCAPS2_PRIMARYGAMMA
#define WINED3DPCMPCAPS_EQUAL
#define WINED3DPMISCCAPS_COLORWRITEENABLE
#define WINEDDFXCAPS_BLTSHRINKY
#define WINED3DPCMPCAPS_NOTEQUAL
#define WINED3DUSAGE_DYNAMIC
#define WINED3DLINECAPS_TEXTURE
#define WINED3DPBLENDCAPS_SRCALPHA
#define WINED3DDEVCAPS2_STREAMOFFSET
#define WINED3DDEVCAPS_DRAWPRIMITIVES2EX
#define WINED3DERR_INVALIDCALL
#define WINEDDFXCAPS_BLTSTRETCHY
#define WINED3DUSAGE_QUERY_SRGBWRITE
#define WINED3DPBLENDCAPS_DESTALPHA
#define WINED3DPRASTERCAPS_SCISSORTEST
#define WINED3DPTFILTERCAPS_MIPFPOINT
#define WINED3DCAPS3_COPY_TO_SYSTEMMEM
#define WINED3DPS20CAPS_NODEPENDENTREADLIMIT
#define WINED3DPCMPCAPS_GREATER
@ WINED3D_DEVICE_TYPE_HAL
@ WINED3D_DEVICE_TYPE_REF
#define WINEDDCKEYCAPS_SRCBLT
#define WINEDDFXCAPS_BLTALPHA
#define WINED3DPBLENDCAPS_INVDESTALPHA
#define WINEDDCAPS2_WIDESURFACES
#define WINED3DPTFILTERCAPS_MINFLINEAR
#define WINED3DPTEXTURECAPS_ALPHAPALETTE
#define WINED3DPBLENDCAPS_BOTHSRCALPHA
#define WINED3D_BIND_INDEX_BUFFER
#define WINEDDSCAPS_MIPMAP
#define WINED3DOK_NOMIPGEN
#define WINED3DDEVCAPS_EXECUTEVIDEOMEMORY
#define WINEDDFXCAPS_BLTMIRRORLEFTRIGHT
#define WINED3DPMISCCAPS_CLIPTLVERTS
#define WINED3DDTCAPS_UBYTE4
#define WINED3DUSAGE_SOFTWAREPROCESSING
#define WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH
#define WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY
#define WINED3DDEVCAPS_HWTRANSFORMANDLIGHT
#define WINED3DLINECAPS_ALPHACMP
#define WINED3DPSHADECAPS_FOGFLAT
#define WINED3DPCMPCAPS_ALWAYS
#define WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)
#define WINED3D_FORMAT_CAP_VERTEX_ATTRIBUTE
#define STATE_BASEVERTEXINDEX
static BOOL wined3d_format_is_typeless(const struct wined3d_format *format)
#define STATE_DEPTH_STENCIL
#define WINED3D_FORMAT_CAP_UNORDERED_ACCESS
#define STATE_STENCIL_REF
#define STATE_CONSTANT_BUFFER(a)
static void * wined3d_texture_allocate_object_memory(SIZE_T s, SIZE_T level_count, SIZE_T layer_count)
#define STATE_GRAPHICS_SHADER_RESOURCE_BINDING
#define MAKEDWORD_VERSION(maj, min)
static void wined3d_cs_finish(struct wined3d_cs *cs, enum wined3d_cs_queue_id queue_id)
#define STATE_STREAM_OUTPUT
#define WINED3D_FORMAT_CAP_TEXTURE
#define STATE_DEPTH_BOUNDS
#define WINED3D_FORMAT_ATTR_EXTENSION
#define WINED3D_FORMAT_CAP_INDEX_BUFFER
#define STATE_BLEND_FACTOR
#define WINED3D_FORMAT_CAP_SRGB_WRITE
#define WINED3D_FORMAT_CAP_FILTERING
#define STATE_SAMPLE_MASK
#define STATE_SCISSORRECT
#define STATE_COMPUTE_SHADER_RESOURCE_BINDING
@ WINED3D_GL_RES_TYPE_TEX_3D
@ WINED3D_GL_RES_TYPE_TEX_CUBE
@ WINED3D_GL_RES_TYPE_BUFFER
@ WINED3D_GL_RES_TYPE_TEX_2D
@ WINED3D_GL_RES_TYPE_TEX_1D
@ DRIVER_NVIDIA_GEFORCE2MX
@ DRIVER_NVIDIA_GEFORCEFX
#define WINED3D_FORMAT_CAP_POSTPIXELSHADER_BLENDING
#define STATE_COMPUTE_UNORDERED_ACCESS_VIEW_BINDING
#define WINED3D_FORMAT_CAP_DEPTH_STENCIL
#define WINED3D_FORMAT_CAP_VTF
static void wined3d_from_cs(const struct wined3d_cs *cs)
#define WINED3D_FORMAT_CAP_RENDERTARGET
#define STATE_INDEXBUFFER
#define WINED3D_FORMAT_CAP_BLIT
#define WINED3D_FORMAT_CAP_SRGB_READ
@ WINED3D_CS_QUEUE_DEFAULT
#define STATE_FRAMEBUFFER
@ CARD_NVIDIA_GEFORCE_GTX780
@ CARD_NVIDIA_GEFORCE_GTX950M
@ CARD_NVIDIA_GEFORCE_RTX4060
@ CARD_NVIDIA_GEFORCE_GTX1060_3GB
@ CARD_NVIDIA_GEFORCE_GT325M
@ CARD_NVIDIA_GEFORCE_GTXTITANZ
@ CARD_NVIDIA_GEFORCE_GTX775M
@ CARD_NVIDIA_GEFORCE_GTX570
@ CARD_NVIDIA_GEFORCE_GTXTITAN
@ CARD_NVIDIA_GEFORCE_RTX3080_10GB_LHR
@ CARD_NVIDIA_GEFORCE_GTX560TI
@ CARD_NVIDIA_GEFORCE_GTX1080TI
@ CARD_NVIDIA_GEFORCE_GTS250
@ CARD_NVIDIA_GEFORCE_6800
@ CARD_NVIDIA_GEFORCE_GT610
@ CARD_NVIDIA_GEFORCE_GT420
@ CARD_NVIDIA_GEFORCEFX_5600
@ CARD_AMD_RADEON_R9_M370X
@ CARD_NVIDIA_GEFORCE_GTX1080
@ CARD_NVIDIA_GEFORCE_9600GT
@ CARD_NVIDIA_GEFORCE_GT640M
@ CARD_NVIDIA_GEFORCE_GTX1650SUPER
@ CARD_AMD_RADEON_RX_VEGA_20
@ CARD_NVIDIA_GEFORCE_GT1030
@ CARD_NVIDIA_GEFORCE_940M
@ CARD_NVIDIA_GEFORCE_320M
@ CARD_AMD_RADEON_R9_290X
@ CARD_NVIDIA_GEFORCE_GT650M
@ CARD_NVIDIA_GEFORCE_GTX460
@ CARD_AMD_RADEON_RX_NAVI_21
@ CARD_NVIDIA_GEFORCE_830M
@ CARD_AMD_RADEON_RX_VEGA_10
@ CARD_NVIDIA_GEFORCE_7300
@ CARD_NVIDIA_GEFORCEFX_5200
@ CARD_NVIDIA_GEFORCE_GTX1650
@ CARD_NVIDIA_GEFORCE_GT330
@ CARD_NVIDIA_GEFORCE_7600
@ CARD_NVIDIA_GEFORCE_GT320M
@ CARD_NVIDIA_GEFORCE_820M
@ CARD_NVIDIA_GEFORCE_GTX280
@ CARD_NVIDIA_GEFORCE_6600GT
@ CARD_NVIDIA_GEFORCE_GT425M
@ CARD_NVIDIA_GEFORCE_GTX275
@ CARD_AMD_RADEON_XPRESS_200M
@ CARD_NVIDIA_GEFORCE_GT440
@ CARD_NVIDIA_GEFORCE_7400
@ CARD_NVIDIA_GEFORCE_GTX560
@ CARD_NVIDIA_GEFORCE_GTX650TI
@ CARD_NVIDIA_GEFORCE_845M
@ CARD_NVIDIA_GEFORCE_RTX3080_10GB
@ CARD_NVIDIA_GEFORCE_840M
@ CARD_NVIDIA_GEFORCE_8800GTX
@ CARD_NVIDIA_GEFORCE_9700MGT
@ CARD_NVIDIA_GEFORCE_GT730
@ CARD_NVIDIA_GEFORCE_GTX580
@ CARD_NVIDIA_GEFORCE_GTX1060
@ CARD_NVIDIA_GEFORCE_GTX1070
@ CARD_NVIDIA_GEFORCE_GTX950
@ CARD_NVIDIA_GEFORCE_RTX3090
@ CARD_NVIDIA_GEFORCE_RTX3060TI_GA104_LHR
@ CARD_NVIDIA_GEFORCE_GTX690
@ CARD_NVIDIA_GEFORCE_GTX780TI
@ CARD_NVIDIA_GEFORCE_RTX3050
@ CARD_AMD_RADEON_RX_VEGA_12
@ CARD_NVIDIA_GEFORCE_RTX3060TI_GA104
@ CARD_NVIDIA_GEFORCE_GTX770
@ CARD_NVIDIA_GEFORCE_RTX3090TI
@ CARD_NVIDIA_GEFORCE_GTX760
@ CARD_NVIDIA_GEFORCE_GTX880M
@ CARD_NVIDIA_GEFORCE4_TI4200
@ CARD_AMD_RADEON_HD4200M
@ CARD_NVIDIA_GEFORCE_GT430
@ CARD_NVIDIA_GEFORCE_GTX750TI
@ CARD_NVIDIA_GEFORCE_8300GS
@ CARD_NVIDIA_GEFORCE_RTX4090
@ CARD_NVIDIA_GEFORCE_GTX465
@ CARD_NVIDIA_GEFORCE_RTX4070TI
@ CARD_NVIDIA_GEFORCE_GT240
@ CARD_NVIDIA_TITANX_PASCAL
@ CARD_AMD_RADEON_R9_M380
@ CARD_AMD_RADEON_HD6550D
@ CARD_NVIDIA_GEFORCE_GT520
@ CARD_NVIDIA_GEFORCE_RTX2080
@ CARD_AMD_RADEON_PRO_V620_VF
@ CARD_NVIDIA_GEFORCE_GTX675MX_1
@ CARD_NVIDIA_GEFORCE_GT730M
@ CARD_AMD_RADEON_RX_NAVI_14
@ CARD_NVIDIA_GEFORCE_8800GTS
@ CARD_NVIDIA_GEFORCE_RTX4070TISUPER
@ CARD_NVIDIA_GEFORCE_GT640
@ CARD_NVIDIA_GEFORCE_8400GS
@ CARD_NVIDIA_GEFORCE_RTX3070TI
@ CARD_NVIDIA_GEFORCE_8200
@ CARD_AMD_RADEON_HD6600M
@ CARD_NVIDIA_GEFORCE_RTX3080TI
@ CARD_NVIDIA_GEFORCE_GTX1660TI
@ CARD_NVIDIA_GEFORCE_RTX3070_MOBILE
@ CARD_NVIDIA_GEFORCE_GTX480
@ CARD_NVIDIA_GEFORCE_RTX4070SUPER
@ CARD_NVIDIA_GEFORCE_GT720
@ CARD_NVIDIA_GEFORCE_GTX550
@ CARD_NVIDIA_GEFORCE_9400M
@ CARD_NVIDIA_GEFORCE_GTX960
@ CARD_NVIDIA_GEFORCE_GT755M
@ CARD_NVIDIA_GEFORCE_GTX680
@ CARD_NVIDIA_GEFORCE_8600MGT
@ CARD_NVIDIA_GEFORCE_GTX650
@ CARD_NVIDIA_GEFORCE_GT555M
@ CARD_NVIDIA_GEFORCE_GTS350M
@ CARD_NVIDIA_GEFORCE_RTX3080_12GB
@ CARD_AMD_RADEON_HD7660D
@ CARD_NVIDIA_GEFORCE_GTX870M
@ CARD_NVIDIA_GEFORCE_9400GT
@ CARD_NVIDIA_GEFORCE_GTX850M
@ CARD_NVIDIA_GEFORCE_RTX3060
@ CARD_NVIDIA_GEFORCE_7800GT
@ CARD_AMD_RADEON_R9_M395X
@ CARD_NVIDIA_GEFORCE_RTX3060TI_GA103
@ CARD_NVIDIA_GEFORCE_GTX670
@ CARD_NVIDIA_GEFORCE_GTX765M
@ CARD_NVIDIA_GEFORCE_RTX4080SUPER
@ CARD_NVIDIA_GEFORCE_GTX1080M
@ CARD_AMD_RADEON_R9_FURY
@ CARD_NVIDIA_GEFORCE_RTX4060TI16G
@ CARD_NVIDIA_GEFORCE_RTX4070
@ CARD_NVIDIA_GEFORCE_RTX3060_LHR
@ CARD_NVIDIA_GEFORCE_210
@ CARD_NVIDIA_GEFORCE_GTX660M
@ CARD_NVIDIA_GEFORCE_GTX460M
@ CARD_NVIDIA_GEFORCE_9800GT
@ CARD_NVIDIA_GEFORCE_6200
@ CARD_NVIDIA_GEFORCE_9300
@ CARD_NVIDIA_GEFORCE_GT525M
@ CARD_NVIDIA_GEFORCE_GTX760TI
@ CARD_NVIDIA_GEFORCE_GTX1060M
@ CARD_NVIDIA_GEFORCE_GTX260
@ CARD_NVIDIA_GEFORCE_GTX980
@ CARD_NVIDIA_GEFORCE_8600GT
@ CARD_NVIDIA_GEFORCE_GTX970M
@ CARD_NVIDIA_GEFORCE_GTX560M
@ CARD_NVIDIA_GEFORCE_GTX1070M
@ CARD_NVIDIA_GEFORCE_315M
@ CARD_NVIDIA_GEFORCE_RTX2070
@ CARD_NVIDIA_GEFORCE_GT630
@ CARD_NVIDIA_GEFORCE_GT220
@ CARD_NVIDIA_GEFORCE_GTX750
@ CARD_NVIDIA_GEFORCE_GTX770M
@ CARD_NVIDIA_GEFORCE_GTXTITANX
@ CARD_NVIDIA_GEFORCE_GTX1660SUPER
@ CARD_AMD_RADEON_RX_NAVI_10
@ CARD_NVIDIA_GEFORCE_GTX675MX_2
@ CARD_AMD_RADEON_PRO_V620
@ CARD_NVIDIA_GEFORCEFX_5800
@ CARD_NVIDIA_GEFORCE_GTX1050
@ CARD_AMD_RADEON_HD8600M
@ CARD_NVIDIA_GEFORCE_RTX4060TI8G
@ CARD_NVIDIA_GEFORCE_GTXTITANB
@ CARD_NVIDIA_GEFORCE4_MX
@ CARD_NVIDIA_GEFORCE_GTX780M
@ CARD_NVIDIA_GEFORCE_GTX960M
@ CARD_NVIDIA_GEFORCE_GTX1050TI
@ CARD_NVIDIA_GEFORCE_GTX970
@ CARD_NVIDIA_GEFORCE_GT630M
@ CARD_NVIDIA_GEFORCE_GT740M
@ CARD_NVIDIA_GEFORCE_GT540M
@ CARD_NVIDIA_GEFORCE_GTX660
@ CARD_NVIDIA_GEFORCE_RTX4080
@ CARD_AMD_RADEON_HD6490M
@ CARD_NVIDIA_GEFORCE_RTX3070
@ CARD_NVIDIA_GEFORCE2_MX
@ CARD_NVIDIA_GEFORCE_RTX2060
@ CARD_NVIDIA_GEFORCE_GTX470
@ CARD_NVIDIA_GEFORCE_RTX2080TI
@ CARD_NVIDIA_GEFORCE_8500GT
@ CARD_NVIDIA_GEFORCE_GTX980TI
@ CARD_NVIDIA_GEFORCE_410M
@ CARD_NVIDIA_GEFORCE_GTS450
@ CARD_NVIDIA_GEFORCE_GT750M
@ CARD_AMD_RADEON_HD6480G
@ CARD_NVIDIA_GEFORCE_RTX3070_LHR
@ CARD_NVIDIA_GEFORCE_GTX660TI
@ CARD_NVIDIA_GEFORCE_9500GT
@ CARD_NVIDIA_GEFORCE_GTX670MX
@ CARD_NVIDIA_GEFORCE_GTX860M
@ CARD_NVIDIA_GEFORCE_9200
@ CARD_AMD_RADEON_HD6410D
#define STATE_GRAPHICS_UNORDERED_ACCESS_VIEW_BINDING
#define WINED3D_FORMAT_CAP_GEN_MIPMAP
static unsigned int wined3d_popcount(unsigned int x)
#define WINED3D_FORMAT_ATTR_BUMPMAP
#define DXGI_ERROR_NOT_CURRENTLY_AVAILABLE
#define DM_DISPLAYFREQUENCY
#define DISPLAY_DEVICE_PRIMARY_DEVICE
#define DM_DISPLAYORIENTATION
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP
BOOL WINAPI GetDeviceGammaRamp(_In_ HDC hdc, _Out_writes_bytes_(3 *256 *2) LPVOID lpRamp)
BOOL WINAPI SetDeviceGammaRamp(_In_ HDC hdc, _In_reads_bytes_(3 *256 *2) LPVOID lpRamp)
BOOL WINAPI DeleteDC(_In_ HDC)
HDC WINAPI CreateDCW(_In_opt_ LPCWSTR pszDriver, _In_opt_ LPCWSTR pszDevice, _In_opt_ LPCWSTR psz, _In_opt_ const DEVMODEW *pdmInit)