From: Elizabeth Figura zfigura@codeweavers.com
This reverts commit f6a1844dbed91b441ad69e7b15b5be242d063e87.
The use of bindless textures results in several bugs. Some appear to be our bugs; at least some of these would require us to attempt to keep textures nonresident when not used, and others have not yet been debugged. Some appear to be driver bugs or at least exacerbations of existing bugs that are not really fixable.
At the same time, separate samplers are a d3d10-level feature, and any d3d10-level GPU should be capable of supporting Vulkan, which does not use combined samplers. The Vulkan renderer does not suffer from the problem that the GL renderer does in this case.
Put another way, any application that is helped by the original commit should also be helped by the Vulkan renderer, and if the application in question is capable of running on a given GPU in the first place then the GPU should in practice support Vulkan.
The original commit fixed a clear and definite bug, and thus this revert reintroduces regressions in some applications, while fixing regressions in others. The long-term fix for these regressions is to finish the Vulkan renderer and default to it where possible.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56474 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56523 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56605 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56627 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57409 --- dlls/d3d11/tests/d3d11.c | 4 +-- dlls/wined3d/adapter_gl.c | 15 -------- dlls/wined3d/context_gl.c | 38 ++------------------- dlls/wined3d/device.c | 24 ------------- dlls/wined3d/glsl_shader.c | 70 +------------------------------------- dlls/wined3d/texture.c | 20 ++++------- dlls/wined3d/view.c | 39 --------------------- dlls/wined3d/wined3d_gl.h | 22 ------------ 8 files changed, 12 insertions(+), 220 deletions(-)
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c index 6d9ad491716..9c5b35faafa 100644 --- a/dlls/d3d11/tests/d3d11.c +++ b/dlls/d3d11/tests/d3d11.c @@ -36183,7 +36183,7 @@ static void test_high_resource_count(void) ID3D11DeviceContext_PSSetSamplers(context, 0, 2, samplers); draw_quad(&test_context);
- check_texture_vec4(rt, &expect, 0); + todo_wine_if (!damavand) check_texture_vec4(rt, &expect, 0);
/* Discard the data in one of the buffers and draw again. */
@@ -36195,7 +36195,7 @@ static void test_high_resource_count(void) ID3D11DeviceContext_Unmap(context, (ID3D11Resource *)buffers[1], 0); draw_quad(&test_context);
- check_texture_vec4(rt, &expect2, 0); + todo_wine_if (!damavand) check_texture_vec4(rt, &expect2, 0);
ID3D11Texture2D_Release(rt); ID3D11RenderTargetView_Release(rtv); diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index c2803379347..1bbafc7957e 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -57,7 +57,6 @@ static const struct wined3d_extension_map gl_extension_map[] =
/* ARB */ {"GL_ARB_base_instance", ARB_BASE_INSTANCE }, - {"GL_ARB_bindless_texture", ARB_BINDLESS_TEXTURE }, {"GL_ARB_blend_func_extended", ARB_BLEND_FUNC_EXTENDED }, {"GL_ARB_buffer_storage", ARB_BUFFER_STORAGE }, {"GL_ARB_clear_buffer_object", ARB_CLEAR_BUFFER_OBJECT }, @@ -2048,12 +2047,6 @@ static void load_gl_funcs(struct wined3d_gl_info *gl_info) /* GL_ARB_base_instance */ USE_GL_FUNC(glDrawArraysInstancedBaseInstance) USE_GL_FUNC(glDrawElementsInstancedBaseVertexBaseInstance) - /* GL_ARB_bindless_texture */ - USE_GL_FUNC(glGetTextureHandleARB) - USE_GL_FUNC(glGetTextureSamplerHandleARB) - USE_GL_FUNC(glIsTextureHandleResidentARB) - USE_GL_FUNC(glMakeTextureHandleResidentARB) - USE_GL_FUNC(glUniformHandleui64ARB) /* GL_ARB_blend_func_extended */ USE_GL_FUNC(glBindFragDataLocationIndexed) USE_GL_FUNC(glGetFragDataIndex) @@ -3540,14 +3533,6 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter_gl *adapter_gl, /* GL_ARB_half_float_vertex is a subset of GL_NV_half_float. */ gl_info->supported[ARB_HALF_FLOAT_VERTEX] = TRUE; } - if (wined3d_creation_flags & WINED3D_SRGB_READ_WRITE_CONTROL) - { - /* ARB_bindless_texture does not let us use EXT_texture_sRGB_decode. - * We could use ARB_texture_view, but the main reason to use bindless - * textures is to avoid GL_MAX_TEXTURE_IMAGE_UNITS, so there's not much - * point. */ - gl_info->supported[ARB_BINDLESS_TEXTURE] = FALSE; - } if (gl_info->supported[ARB_FRAMEBUFFER_SRGB] && !gl_info->supported[EXT_TEXTURE_SRGB_DECODE]) { /* Current wined3d sRGB infrastructure requires EXT_texture_sRGB_decode diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c index 46bb3f9f365..e150e2bdec6 100644 --- a/dlls/wined3d/context_gl.c +++ b/dlls/wined3d/context_gl.c @@ -2552,37 +2552,6 @@ void wined3d_context_gl_bind_texture(struct wined3d_context_gl *context_gl, GLen checkGLcall("bind texture"); }
-GLuint64 wined3d_device_gl_get_dummy_bindless_handle(const struct wined3d_device_gl *device_gl, - enum wined3d_shader_resource_type type) -{ - switch (type) - { - case WINED3D_SHADER_RESOURCE_BUFFER: - return device_gl->dummy_textures.bindless.tex_buffer; - case WINED3D_SHADER_RESOURCE_TEXTURE_1D: - return device_gl->dummy_textures.bindless.tex_1d; - case WINED3D_SHADER_RESOURCE_TEXTURE_2D: - return device_gl->dummy_textures.bindless.tex_2d; - case WINED3D_SHADER_RESOURCE_TEXTURE_3D: - return device_gl->dummy_textures.bindless.tex_3d; - case WINED3D_SHADER_RESOURCE_TEXTURE_CUBE: - return device_gl->dummy_textures.bindless.tex_cube; - case WINED3D_SHADER_RESOURCE_TEXTURE_1DARRAY: - return device_gl->dummy_textures.bindless.tex_1d_array; - case WINED3D_SHADER_RESOURCE_TEXTURE_2DARRAY: - return device_gl->dummy_textures.bindless.tex_2d_array; - case WINED3D_SHADER_RESOURCE_TEXTURE_CUBEARRAY: - return device_gl->dummy_textures.bindless.tex_cube_array; - case WINED3D_SHADER_RESOURCE_TEXTURE_2DMS: - return device_gl->dummy_textures.bindless.tex_2d_ms; - case WINED3D_SHADER_RESOURCE_TEXTURE_2DMSARRAY: - return device_gl->dummy_textures.bindless.tex_2d_ms_array; - default: - FIXME("Unhandled resource type %#x.\n", type); - return 0; - } -} - static void wined3d_context_gl_poll_fences(struct wined3d_context_gl *context_gl) { struct wined3d_device_gl *device_gl = wined3d_device_gl(context_gl->c.device); @@ -3803,9 +3772,6 @@ static void wined3d_context_gl_bind_shader_resources(struct wined3d_context_gl * return; }
- if (gl_info->supported[ARB_BINDLESS_TEXTURE]) - return; - tex_unit_map = wined3d_context_gl_get_tex_unit_mapping(context_gl, &shader->reg_maps.shader_version, &base, &count);
@@ -4167,6 +4133,7 @@ static BOOL context_apply_draw_state(struct wined3d_context *context, { for (i = 0; i < WINED3D_SHADER_TYPE_GRAPHICS_COUNT; ++i) wined3d_context_gl_bind_shader_resources(context_gl, state, i); + context->update_shader_resource_bindings = 0; if (gl_info->limits.combined_samplers == gl_info->limits.graphics_samplers) context->update_compute_shader_resource_bindings = 1; } @@ -4185,7 +4152,6 @@ static BOOL context_apply_draw_state(struct wined3d_context *context, device->shader_backend->shader_apply_draw_state(device->shader_priv, context, state); context->shader_update_mask &= 1u << WINED3D_SHADER_TYPE_COMPUTE; context->constant_update_mask = 0; - context->update_shader_resource_bindings = 0;
context->last_was_blit = FALSE; context->last_was_ffp_blit = FALSE; @@ -4222,6 +4188,7 @@ static void wined3d_context_gl_apply_compute_state(struct wined3d_context_gl *co if (context_gl->c.update_compute_shader_resource_bindings) { wined3d_context_gl_bind_shader_resources(context_gl, state, WINED3D_SHADER_TYPE_COMPUTE); + context_gl->c.update_compute_shader_resource_bindings = 0; if (gl_info->limits.combined_samplers == gl_info->limits.graphics_samplers) context_gl->c.update_shader_resource_bindings = 1; } @@ -4248,7 +4215,6 @@ static void wined3d_context_gl_apply_compute_state(struct wined3d_context_gl *co context_gl->c.last_was_blit = FALSE; context_gl->c.last_was_ffp_blit = FALSE; context_gl->c.shader_update_mask &= ~(1u << WINED3D_SHADER_TYPE_COMPUTE); - context_gl->c.update_compute_shader_resource_bindings = 0; }
void wined3d_context_gl_end_transform_feedback(struct wined3d_context_gl *context_gl) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 7e24de8afb3..503b377662a 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -568,18 +568,6 @@ out: if (hbm) DeleteObject(hbm); }
-static GLuint64 create_dummy_bindless_handle(const struct wined3d_gl_info *gl_info, GLuint texture) -{ - GLuint64 handle; - - if (!texture || !gl_info->supported[ARB_BINDLESS_TEXTURE]) - return 0; - - handle = GL_EXTCALL(glGetTextureHandleARB(texture)); - GL_EXTCALL(glMakeTextureHandleResidentARB(handle)); - return handle; -} - /* Context activation is done by the caller. */ static void wined3d_device_gl_create_dummy_textures(struct wined3d_device_gl *device_gl, struct wined3d_context_gl *context_gl) @@ -701,18 +689,6 @@ static void wined3d_device_gl_create_dummy_textures(struct wined3d_device_gl *de } }
- textures->bindless.tex_1d = create_dummy_bindless_handle(gl_info, textures->tex_1d); - textures->bindless.tex_2d = create_dummy_bindless_handle(gl_info, textures->tex_2d); - textures->bindless.tex_rect = create_dummy_bindless_handle(gl_info, textures->tex_rect); - textures->bindless.tex_3d = create_dummy_bindless_handle(gl_info, textures->tex_3d); - textures->bindless.tex_cube = create_dummy_bindless_handle(gl_info, textures->tex_cube); - textures->bindless.tex_cube_array = create_dummy_bindless_handle(gl_info, textures->tex_cube_array); - textures->bindless.tex_1d_array = create_dummy_bindless_handle(gl_info, textures->tex_1d_array); - textures->bindless.tex_2d_array = create_dummy_bindless_handle(gl_info, textures->tex_2d_array); - textures->bindless.tex_buffer = create_dummy_bindless_handle(gl_info, textures->tex_buffer); - textures->bindless.tex_2d_ms = create_dummy_bindless_handle(gl_info, textures->tex_2d_ms); - textures->bindless.tex_2d_ms_array = create_dummy_bindless_handle(gl_info, textures->tex_2d_ms_array); - checkGLcall("create dummy textures");
wined3d_context_gl_bind_dummy_textures(context_gl); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 61b53da540a..5856aae5447 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -2611,9 +2611,7 @@ static void shader_generate_glsl_declarations(const struct wined3d_context_gl *c break; }
- if (gl_info->supported[ARB_BINDLESS_TEXTURE]) - shader_addline(buffer, "layout(bindless_sampler) "); - else if (shader_glsl_use_layout_binding_qualifier(gl_info)) + if (shader_glsl_use_layout_binding_qualifier(gl_info)) shader_glsl_append_sampler_binding_qualifier(buffer, &context_gl->c, version, entry->bind_idx); shader_addline(buffer, "uniform %s%s %s_sampler%u;\n", sampler_type_prefix, sampler_type, prefix, entry->bind_idx); @@ -7710,8 +7708,6 @@ static void shader_glsl_generate_colour_key_test(struct wined3d_string_buffer *b static void shader_glsl_enable_extensions(struct wined3d_string_buffer *buffer, const struct wined3d_gl_info *gl_info) { - if (gl_info->supported[ARB_BINDLESS_TEXTURE]) - shader_addline(buffer, "#extension GL_ARB_bindless_texture : enable\n"); if (gl_info->supported[ARB_CULL_DISTANCE]) shader_addline(buffer, "#extension GL_ARB_cull_distance : enable\n"); if (gl_info->supported[ARB_GPU_SHADER5]) @@ -9814,7 +9810,6 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct shader_glsl_priv * } if (sampler_type) { - /* We don't use bindless samplers for FFP shaders. */ if (shader_glsl_use_layout_binding_qualifier(gl_info)) shader_glsl_append_sampler_binding_qualifier(buffer, &context_gl->c, NULL, stage); shader_addline(buffer, "uniform sampler%s ps_sampler%u;\n", sampler_type, stage); @@ -10884,60 +10879,6 @@ static void shader_glsl_update_graphics_program(struct shader_glsl_priv *priv, context_gl->c.shader_update_mask |= (1u << WINED3D_SHADER_TYPE_COMPUTE); }
-static void shader_glsl_load_bindless_samplers(struct shader_glsl_priv *priv, struct wined3d_context_gl *context_gl, - const struct wined3d_state *state, enum wined3d_shader_type shader_type) -{ - const struct wined3d_device_gl *device_gl = wined3d_device_gl(context_gl->c.device); - const struct glsl_context_data *ctx_data = context_gl->c.shader_backend_data; - const struct wined3d_shader *shader = state->shader[shader_type]; - const struct wined3d_gl_info *gl_info = context_gl->gl_info; - const char *prefix = shader_glsl_get_prefix(shader_type); - struct wined3d_string_buffer *sampler_name; - - /* Note that we don't use bindless samplers for FFP shaders. */ - if (!shader) - return; - - sampler_name = string_buffer_get(&priv->string_buffers); - - for (unsigned int i = 0; i < shader->reg_maps.sampler_map.count; ++i) - { - const struct wined3d_shader_sampler_map_entry *entry = &shader->reg_maps.sampler_map.entries[i]; - struct wined3d_shader_resource_view *view; - struct wined3d_sampler *sampler; - GLuint64 handle; - GLint name_loc; - - /* No need to bother with the texture unit map; we're binding directly to uniforms. */ - - string_buffer_sprintf(sampler_name, "%s_sampler%u", prefix, entry->bind_idx); - name_loc = GL_EXTCALL(glGetUniformLocation(ctx_data->glsl_program->id, sampler_name->buffer)); - if (name_loc == -1) - continue; - - if ((view = state->shader_resource_view[shader_type][entry->resource_idx])) - { - if (entry->sampler_idx == WINED3D_SAMPLER_DEFAULT) - sampler = device_gl->d.default_sampler; - else if (!(sampler = state->sampler[shader_type][entry->sampler_idx])) - sampler = device_gl->d.null_sampler; - - handle = wined3d_shader_resource_view_gl_get_bindless_handle( - wined3d_shader_resource_view_gl(view), wined3d_sampler_gl(sampler), context_gl); - } - else - { - WARN("No resource view bound at index %u, %u.\n", shader_type, entry->resource_idx); - handle = wined3d_device_gl_get_dummy_bindless_handle(device_gl, - shader->reg_maps.resource_info[entry->resource_idx].type); - } - GL_EXTCALL(glUniformHandleui64ARB(name_loc, handle)); - checkGLcall("glUniformHandleui64ARB"); - } - - string_buffer_release(&priv->string_buffers, sampler_name); -} - static void shader_glsl_apply_draw_state(void *shader_priv, struct wined3d_context *context, const struct wined3d_state *state) { @@ -10949,12 +10890,6 @@ static void shader_glsl_apply_draw_state(void *shader_priv, struct wined3d_conte
if (context->constant_update_mask) shader_glsl_load_constants(priv, context, state); - - if (context->update_shader_resource_bindings && context_gl->gl_info->supported[ARB_BINDLESS_TEXTURE]) - { - for (unsigned int type = 0; type < WINED3D_SHADER_TYPE_GRAPHICS_COUNT; ++type) - shader_glsl_load_bindless_samplers(priv, context_gl, state, type); - } }
static void shader_glsl_update_compute_program(struct shader_glsl_priv *priv, @@ -10991,9 +10926,6 @@ static void shader_glsl_apply_compute_state(void *shader_priv, struct wined3d_co
if (context_gl->c.shader_update_mask & (1u << WINED3D_SHADER_TYPE_COMPUTE)) shader_glsl_update_compute_program(priv, context_gl, state); - - if (context->update_compute_shader_resource_bindings && context_gl->gl_info->supported[ARB_BINDLESS_TEXTURE]) - shader_glsl_load_bindless_samplers(priv, context_gl, state, WINED3D_SHADER_TYPE_COMPUTE); }
/* "context" is not necessarily the currently active context. */ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 27fedf4db67..5061f0033fd 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -1285,8 +1285,8 @@ void wined3d_gl_texture_swizzle_from_color_fixup(GLint swizzle[4], struct color_ }
/* Context activation is done by the caller. */ -GLuint wined3d_texture_gl_prepare_gl_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) { const struct wined3d_format *format = texture_gl->t.resource.format; const struct wined3d_gl_info *gl_info = context_gl->gl_info; @@ -1309,7 +1309,10 @@ GLuint wined3d_texture_gl_prepare_gl_texture(struct wined3d_texture_gl *texture_ target = texture_gl->target;
if (gl_tex->name) - return gl_tex->name; + { + wined3d_context_gl_bind_texture(context_gl, target, gl_tex->name); + return; + }
gl_info->gl_ops.gl.p_glGenTextures(1, &gl_tex->name); checkGLcall("glGenTextures"); @@ -1318,7 +1321,7 @@ GLuint wined3d_texture_gl_prepare_gl_texture(struct wined3d_texture_gl *texture_ if (!gl_tex->name) { ERR("Failed to generate a texture name.\n"); - return 0; + return; }
/* Initialise the state of the texture object to the OpenGL defaults, not @@ -1396,8 +1399,6 @@ GLuint wined3d_texture_gl_prepare_gl_texture(struct wined3d_texture_gl *texture_ gl_info->gl_ops.gl.p_glTexParameteriv(target, GL_TEXTURE_SWIZZLE_RGBA, swizzle); checkGLcall("set format swizzle"); } - - return gl_tex->name; }
/* Context activation is done by the caller. */ @@ -1412,13 +1413,6 @@ void wined3d_texture_gl_bind_and_dirtify(struct wined3d_texture_gl *texture_gl, wined3d_texture_gl_bind(texture_gl, context_gl, srgb); }
-void wined3d_texture_gl_bind(struct wined3d_texture_gl *texture_gl, - struct wined3d_context_gl *context_gl, BOOL srgb) -{ - wined3d_context_gl_bind_texture(context_gl, texture_gl->target, - wined3d_texture_gl_prepare_gl_texture(texture_gl, context_gl, srgb)); -} - /* Context activation is done by the caller (state handler). */ /* This function relies on the correct texture being bound and loaded. */ void wined3d_texture_gl_apply_sampler_desc(struct wined3d_texture_gl *texture_gl, diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c index 91b88c2037d..c72e5044d04 100644 --- a/dlls/wined3d/view.c +++ b/dlls/wined3d/view.c @@ -270,14 +270,6 @@ static void create_buffer_texture(struct wined3d_gl_view *view, struct wined3d_c { gl_info->gl_ops.gl.p_glGenTextures(1, &view->name); } - else if (gl_info->supported[ARB_BINDLESS_TEXTURE]) - { - /* If we already bound this view to a shader, we acquired a handle to - * it, and it's now immutable. This means we can't bind a new buffer - * storage to it, so recreate the texture. */ - gl_info->gl_ops.gl.p_glDeleteTextures(1, &view->name); - gl_info->gl_ops.gl.p_glGenTextures(1, &view->name); - }
wined3d_context_gl_bind_texture(context_gl, GL_TEXTURE_BUFFER, view->name); if (gl_info->supported[ARB_TEXTURE_BUFFER_RANGE]) @@ -1317,37 +1309,6 @@ static void shader_resource_view_gl_bind_and_dirtify(struct wined3d_shader_resou wined3d_context_gl_bind_texture(context_gl, view_gl->gl_view.target, view_gl->gl_view.name); }
-GLuint64 wined3d_shader_resource_view_gl_get_bindless_handle(struct wined3d_shader_resource_view_gl *view_gl, - struct wined3d_sampler_gl *sampler_gl, struct wined3d_context_gl *context_gl) -{ - const struct wined3d_gl_info *gl_info = context_gl->gl_info; - GLuint64 handle; - GLuint name; - - if (view_gl->gl_view.name) - { - name = view_gl->gl_view.name; - } - else if (view_gl->v.resource->type == WINED3D_RTYPE_BUFFER) - { - FIXME("Buffer shader resources not supported.\n"); - return 0; - } - else - { - struct wined3d_texture_gl *texture_gl = wined3d_texture_gl(wined3d_texture_from_resource(view_gl->v.resource)); - name = wined3d_texture_gl_prepare_gl_texture(texture_gl, context_gl, FALSE); - } - - handle = GL_EXTCALL(glGetTextureSamplerHandleARB(name, sampler_gl->name)); - checkGLcall("glGetTextureSamplerHandleARB"); - /* It is an error to make a handle resident if it is already resident. */ - if (!GL_EXTCALL(glIsTextureHandleResidentARB(handle))) - GL_EXTCALL(glMakeTextureHandleResidentARB(handle)); - checkGLcall("glMakeTextureHandleResidentARB"); - return handle; -} - void wined3d_shader_resource_view_gl_generate_mipmap(struct wined3d_shader_resource_view_gl *view_gl, struct wined3d_context_gl *context_gl) { diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index 039f652adb9..24d7ebf663b 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -51,7 +51,6 @@ enum wined3d_gl_extension APPLE_YCBCR_422, /* ARB */ ARB_BASE_INSTANCE, - ARB_BINDLESS_TEXTURE, ARB_BLEND_FUNC_EXTENDED, ARB_BUFFER_STORAGE, ARB_CLEAR_BUFFER_OBJECT, @@ -841,21 +840,6 @@ struct wined3d_dummy_textures GLuint tex_buffer; GLuint tex_2d_ms; GLuint tex_2d_ms_array; - - struct - { - GLuint64 tex_1d; - GLuint64 tex_2d; - GLuint64 tex_rect; - GLuint64 tex_3d; - GLuint64 tex_cube; - GLuint64 tex_cube_array; - GLuint64 tex_1d_array; - GLuint64 tex_2d_array; - GLuint64 tex_buffer; - GLuint64 tex_2d_ms; - GLuint64 tex_2d_ms_array; - } bindless; };
struct wined3d_device_gl @@ -919,8 +903,6 @@ bool wined3d_device_gl_create_bo(struct wined3d_device_gl *device_gl, void wined3d_device_gl_create_primary_opengl_context_cs(void *object); void wined3d_device_gl_delete_opengl_contexts_cs(void *object); HDC wined3d_device_gl_get_backup_dc(struct wined3d_device_gl *device_gl); -GLuint64 wined3d_device_gl_get_dummy_bindless_handle(const struct wined3d_device_gl *device_gl, - enum wined3d_shader_resource_type type); GLbitfield wined3d_device_gl_get_memory_type_flags(unsigned int memory_type_idx);
GLbitfield wined3d_resource_gl_map_flags(const struct wined3d_bo_gl *bo, DWORD d3d_flags); @@ -1037,8 +1019,6 @@ void wined3d_texture_gl_bind_and_dirtify(struct wined3d_texture_gl *texture_gl, HRESULT wined3d_texture_gl_init(struct wined3d_texture_gl *texture_gl, 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); -GLuint wined3d_texture_gl_prepare_gl_texture(struct wined3d_texture_gl *texture_gl, - struct wined3d_context_gl *context_gl, BOOL srgb); void wined3d_texture_gl_prepare_texture(struct wined3d_texture_gl *texture_gl, struct wined3d_context_gl *context_gl, BOOL srgb); void wined3d_texture_gl_set_compatible_renderbuffer(struct wined3d_texture_gl *texture_gl, @@ -1113,8 +1093,6 @@ void wined3d_shader_resource_view_gl_bind(struct wined3d_shader_resource_view_gl struct wined3d_sampler_gl *sampler_gl, struct wined3d_context_gl *context_gl); void wined3d_shader_resource_view_gl_generate_mipmap(struct wined3d_shader_resource_view_gl *srv_gl, struct wined3d_context_gl *context_gl); -GLuint64 wined3d_shader_resource_view_gl_get_bindless_handle(struct wined3d_shader_resource_view_gl *view_gl, - struct wined3d_sampler_gl *sampler_gl, struct wined3d_context_gl *context_gl); 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);
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=150391
Your paranoid android.
=== debian11 (32 bit ar:MA report) ===
d3d11: d3d11.c:10527: Test failed: Got {0.00000000e+000, 0.00000000e+000, 0.00000000e+000, 0.00000000e+000}, expected {0.00000000e+000, 0.00000000e+000, 0.00000000e+000, 1.00000000e+000} at (100, 100), sub-resource 0.
=== debian11 (32 bit fr report) ===
d3d11: d3d11.c:10527: Test failed: Got {0.00000000e+000, 0.00000000e+000, 0.00000000e+000, 0.00000000e+000}, expected {0.00000000e+000, 0.00000000e+000, 0.00000000e+000, 1.00000000e+000} at (100, 100), sub-resource 0.
=== debian11b (64 bit WoW report) ===
dsound: dsound.c:1786: Test failed: got 00000001
Alternatively we could hide this feature behind a knob. Granted, that doesn't give it much if any utility compared to the existing knob that is the Vulkan renderer...
This merge request was approved by Jan Sikorski.