On Mon, 13 Jul 2020 at 16:31, Matteo Bruni mbruni@codeweavers.com wrote:
@@ -3829,17 +3832,14 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, gl_vendor = wined3d_guess_gl_vendor(gl_info, gl_vendor_str, gl_renderer_str, gl_version_str); TRACE("Guessed GL vendor %#x.\n", gl_vendor);
- adapter->shader_backend->shader_get_caps(adapter, &shader_caps);
- adapter->fragment_pipe->get_caps(adapter, &fragment_caps);
- feature_level = feature_level_from_caps(gl_info, &shader_caps, &fragment_caps);
- if (!(gpu_description = query_gpu_description(gl_info, &vram_bytes))) {
enum wined3d_feature_level feature_level;
struct fragment_caps fragment_caps; enum wined3d_pci_vendor vendor; enum wined3d_pci_device device;
struct shader_caps shader_caps;
adapter->shader_backend->shader_get_caps(adapter, &shader_caps);
adapter->fragment_pipe->get_caps(adapter, &fragment_caps);
feature_level = feature_level_from_caps(gl_info, &shader_caps, &fragment_caps); vendor = wined3d_guess_card_vendor(gl_vendor_str, gl_renderer_str); TRACE("Guessed vendor PCI ID 0x%04x.\n", vendor);
@@ -3855,7 +3855,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, } fixup_extensions(gl_info, caps_gl_ctx, gl_renderer_str, gl_vendor, gpu_description->vendor, gpu_description->device);
- wined3d_driver_info_init(driver_info, gpu_description, vram_bytes, 0);
- wined3d_driver_info_init(driver_info, gpu_description, feature_level, vram_bytes, 0); TRACE("Reporting (fake) driver version 0x%08x-0x%08x.\n", driver_info->version_high, driver_info->version_low);
Perhaps wined3d_adapter_init_gl_caps() ultimately isn't the right place for wined3d_driver_info_init(). I.e., I think an argument could be made for storing "gpu_description" and "vram_bytes" in "caps_gl_ctx", and calling wined3d_driver_info_init() only after wined3d_adapter_gl_init_d3d_info().
@@ -2082,7 +2082,8 @@ static void adapter_vk_init_driver_info(struct wined3d_adapter_vk *adapter_vk, gpu_description = &description; }
- wined3d_driver_info_init(&adapter_vk->a.driver_info, gpu_description, vram_bytes, sysmem_bytes);
- wined3d_driver_info_init(&adapter_vk->a.driver_info, gpu_description, WINED3D_FEATURE_LEVEL_11_1,
vram_bytes, sysmem_bytes);
}
Something similar applies here, but passing WINED3D_FEATURE_LEVEL_11_1 is simply wrong; at a minimum this should use the Vulkan version of feature_level_from_caps().