From: Elizabeth Figura zfigura@codeweavers.com
--- dlls/wined3d/adapter_gl.c | 24 +--------------------- dlls/wined3d/adapter_vk.c | 1 - dlls/wined3d/buffer.c | 37 ---------------------------------- dlls/wined3d/context.c | 3 +-- dlls/wined3d/cs.c | 2 +- dlls/wined3d/glsl_shader.c | 1 - dlls/wined3d/shader_spirv.c | 1 - dlls/wined3d/wined3d_private.h | 3 --- 8 files changed, 3 insertions(+), 69 deletions(-)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index 8e2e8f9a359..073a41644b7 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -3867,23 +3867,6 @@ static void WINE_GLAPI position_d3dcolor(const void *data) D3DCOLOR_B_A(pos)); }
-static void WINE_GLAPI position_float4(const void *data) -{ - const struct wined3d_gl_info *gl_info = wined3d_context_gl_get_current()->gl_info; - const GLfloat *pos = data; - - if (pos[3] != 0.0f && pos[3] != 1.0f) - { - float w = 1.0f / pos[3]; - - gl_info->gl_ops.gl.p_glVertex4f(pos[0] * w, pos[1] * w, pos[2] * w, w); - } - else - { - gl_info->gl_ops.gl.p_glVertex3fv(pos); - } -} - static void WINE_GLAPI diffuse_d3dcolor(const void *data) { const struct wined3d_gl_info *gl_info = wined3d_context_gl_get_current()->gl_info; @@ -3962,7 +3945,6 @@ static void WINE_GLAPI generic_float16_4(GLuint idx, const void *data)
static void wined3d_adapter_init_ffp_attrib_ops(struct wined3d_adapter_gl *adapter_gl) { - const struct wined3d_d3d_info *d3d_info = &adapter_gl->a.d3d_info; struct wined3d_gl_info *gl_info = &adapter_gl->gl_info; struct wined3d_ffp_attrib_ops *ops = &gl_info->ffp_attrib_ops; unsigned int i; @@ -3978,10 +3960,7 @@ static void wined3d_adapter_init_ffp_attrib_ops(struct wined3d_adapter_gl *adapt }
ops->position[WINED3D_FFP_EMIT_FLOAT3] = (wined3d_ffp_attrib_func)gl_info->gl_ops.gl.p_glVertex3fv; - if (!d3d_info->xyzrhw) - ops->position[WINED3D_FFP_EMIT_FLOAT4] = position_float4; - else - ops->position[WINED3D_FFP_EMIT_FLOAT4] = (wined3d_ffp_attrib_func)gl_info->gl_ops.gl.p_glVertex4fv; + ops->position[WINED3D_FFP_EMIT_FLOAT4] = (wined3d_ffp_attrib_func)gl_info->gl_ops.gl.p_glVertex4fv; ops->position[WINED3D_FFP_EMIT_D3DCOLOR] = position_d3dcolor; ops->position[WINED3D_FFP_EMIT_SHORT4] = (wined3d_ffp_attrib_func)gl_info->gl_ops.gl.p_glVertex2sv;
@@ -5036,7 +5015,6 @@ static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_ TRACE("Maximum point size support - max point size %.8e.\n", f[1]);
d3d_info->wined3d_creation_flags = wined3d_creation_flags; - d3d_info->xyzrhw = vertex_caps.xyzrhw; d3d_info->emulated_flatshading = vertex_caps.emulated_flatshading; d3d_info->ffp_generic_attributes = vertex_caps.ffp_generic_attributes; d3d_info->ffp_alpha_test = !!gl_info->supported[WINED3D_GL_LEGACY_CONTEXT]; diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index 1b0a402b233..c23ee92c84f 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -2325,7 +2325,6 @@ static void wined3d_adapter_vk_init_d3d_info(struct wined3d_adapter_vk *adapter_
d3d_info->wined3d_creation_flags = wined3d_creation_flags;
- d3d_info->xyzrhw = vertex_caps.xyzrhw; d3d_info->emulated_flatshading = vertex_caps.emulated_flatshading; d3d_info->ffp_generic_attributes = vertex_caps.ffp_generic_attributes; d3d_info->ffp_alpha_test = false; diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index 697c4f393a4..ad58aa4a152 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -306,7 +306,6 @@ static BOOL buffer_process_converted_attribute(struct wined3d_buffer *buffer, }
#define WINED3D_BUFFER_FIXUP_D3DCOLOR 0x01 -#define WINED3D_BUFFER_FIXUP_XYZRHW 0x02
static BOOL buffer_check_attribute(struct wined3d_buffer *This, const struct wined3d_stream_info *si, const struct wined3d_state *state, UINT attrib_idx, DWORD fixup_flags, UINT *stride_this_run) @@ -325,23 +324,9 @@ static BOOL buffer_check_attribute(struct wined3d_buffer *This, const struct win format = attrib->format->id; /* Look for newly appeared conversion */ if (fixup_flags & WINED3D_BUFFER_FIXUP_D3DCOLOR && format == WINED3DFMT_B8G8R8A8_UNORM) - { ret = buffer_process_converted_attribute(This, CONV_D3DCOLOR, attrib, stride_this_run); - } - else if (fixup_flags & WINED3D_BUFFER_FIXUP_XYZRHW && si->position_transformed) - { - if (format != WINED3DFMT_R32G32B32A32_FLOAT) - { - FIXME("Unexpected format %s for transformed position.\n", debug_d3dformat(format)); - return FALSE; - } - - ret = buffer_process_converted_attribute(This, CONV_POSITIONT, attrib, stride_this_run); - } else if (This->conversion_map) - { ret = buffer_process_converted_attribute(This, CONV_NONE, attrib, stride_this_run); - }
return ret; } @@ -423,8 +408,6 @@ static BOOL buffer_find_decl(struct wined3d_buffer *This, const struct wined3d_s
ret = buffer_check_attribute(This, si, state, WINED3D_FFP_POSITION, fixup_flags, &stride_this_run) || ret; - fixup_flags &= ~WINED3D_BUFFER_FIXUP_XYZRHW; - ret = buffer_check_attribute(This, si, state, WINED3D_FFP_BLENDWEIGHT, fixup_flags, &stride_this_run) || ret; ret = buffer_check_attribute(This, si, state, WINED3D_FFP_BLENDINDICES, @@ -488,21 +471,6 @@ static inline unsigned int fixup_d3dcolor(DWORD *dst_color) return sizeof(*dst_color); }
-static inline unsigned int fixup_transformed_pos(struct wined3d_vec4 *p) -{ - /* rhw conversion like in position_float4(). */ - if (p->w != 1.0f && p->w != 0.0f) - { - float w = 1.0f / p->w; - p->x *= w; - p->y *= w; - p->z *= w; - p->w = w; - } - - return sizeof(*p); -} - ULONG CDECL wined3d_buffer_incref(struct wined3d_buffer *buffer) { unsigned int refcount = InterlockedIncrement(&buffer->resource.ref); @@ -553,9 +521,6 @@ static void buffer_conversion_upload(struct wined3d_buffer *buffer, struct wined case CONV_D3DCOLOR: j += fixup_d3dcolor((DWORD *) (data + i * buffer->stride + j)); break; - case CONV_POSITIONT: - j += fixup_transformed_pos((struct wined3d_vec4 *) (data + i * buffer->stride + j)); - break; default: FIXME("Unimplemented conversion %d in shifted conversion.\n", buffer->conversion_map[j]); ++j; @@ -852,8 +817,6 @@ void wined3d_buffer_load(struct wined3d_buffer *buffer, struct wined3d_context * { if (!d3d_info->vertex_bgra && !d3d_info->ffp_generic_attributes) fixup_flags |= WINED3D_BUFFER_FIXUP_D3DCOLOR; - if (!d3d_info->xyzrhw) - fixup_flags |= WINED3D_BUFFER_FIXUP_XYZRHW; }
decl_changed = buffer_find_decl(buffer, &context->stream_info, state, fixup_flags); diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index b6c24c3d837..bfee98e470f 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -332,8 +332,7 @@ void context_update_stream_info(struct wined3d_context *context, const struct wi slow_mask |= -(!d3d_info->vertex_bgra && !d3d_info->ffp_generic_attributes) & ((1u << WINED3D_FFP_DIFFUSE) | (1u << WINED3D_FFP_SPECULAR) | (1u << WINED3D_FFP_BLENDWEIGHT));
- if ((stream_info->position_transformed && !d3d_info->xyzrhw) - || (stream_info->use_map & slow_mask)) + if (stream_info->use_map & slow_mask) context->use_immediate_mode_draw = TRUE; } } diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c index ebccc53951e..f473a0e8c2c 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -3080,7 +3080,7 @@ static bool wined3d_cs_map_upload_bo(struct wined3d_device_context *context, str
/* We can't use persistent maps if we might need to do vertex attribute * conversion; that will cause the CS thread to invalidate the BO. */ - if (!d3d_info->xyzrhw || !d3d_info->vertex_bgra || !d3d_info->ffp_generic_attributes) + if (!d3d_info->vertex_bgra || !d3d_info->ffp_generic_attributes) { TRACE("Not returning a persistent buffer because we might need to do vertex attribute conversion.\n"); return false; diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index a0cc7126b3e..7b46c648db7 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -11682,7 +11682,6 @@ static void glsl_vertex_pipe_vp_get_caps(const struct wined3d_adapter *adapter, { const struct wined3d_gl_info *gl_info = &wined3d_adapter_gl_const(adapter)->gl_info;
- caps->xyzrhw = TRUE; caps->emulated_flatshading = !needs_legacy_glsl_syntax(gl_info); caps->ffp_generic_attributes = TRUE; caps->max_active_lights = WINED3D_MAX_ACTIVE_LIGHTS; diff --git a/dlls/wined3d/shader_spirv.c b/dlls/wined3d/shader_spirv.c index 38d4dc0d81d..b5cba701103 100644 --- a/dlls/wined3d/shader_spirv.c +++ b/dlls/wined3d/shader_spirv.c @@ -1134,7 +1134,6 @@ static void spirv_vertex_pipe_vk_vp_disable(const struct wined3d_context *contex static void spirv_vertex_pipe_vk_vp_get_caps(const struct wined3d_adapter *adapter, struct wined3d_vertex_caps *caps) { memset(caps, 0, sizeof(*caps)); - caps->xyzrhw = TRUE; caps->ffp_generic_attributes = TRUE; }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index cb67dfaf93a..0167000343e 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -220,7 +220,6 @@ struct wined3d_d3d_info struct fragment_caps ffp_fragment_caps; struct wined3d_d3d_limits limits; uint32_t wined3d_creation_flags; - uint32_t xyzrhw : 1; uint32_t emulated_flatshading : 1; uint32_t ffp_generic_attributes : 1; uint32_t ffp_alpha_test : 1; @@ -1999,7 +1998,6 @@ struct wined3d_fragment_pipe_ops
struct wined3d_vertex_caps { - BOOL xyzrhw; BOOL emulated_flatshading; BOOL ffp_generic_attributes; DWORD max_active_lights; @@ -3798,7 +3796,6 @@ enum wined3d_buffer_conversion_type { CONV_NONE, CONV_D3DCOLOR, - CONV_POSITIONT, };
struct wined3d_buffer