Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/wined3d/surface.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 3216439f32b..5feeba3be2d 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -853,6 +853,14 @@ static HRESULT surface_cpu_blt(struct wined3d_texture *dst_texture, unsigned int goto release; }
+ if ((src_fmt_flags | dst_fmt_flags) & WINED3DFMT_FLAG_HEIGHT_SCALE) + { + FIXME("Unsupported blit between height-scaled formats (src %s, dst %s).\n", + debug_d3dformat(src_format->id), debug_d3dformat(dst_format->id)); + hr = E_NOTIMPL; + goto release; + } + if (filter != WINED3D_TEXF_NONE && filter != WINED3D_TEXF_POINT && (src_width != dst_width || src_height != dst_height)) {
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/wined3d/texture.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index ce283b05022..a73b3b55e4b 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -279,6 +279,9 @@ static bool fbo_blitter_supported(enum wined3d_blit_op blit_op, const struct win if ((wined3d_settings.offscreen_rendering_mode != ORM_FBO) || !gl_info->fbo_ops.glBlitFramebuffer) return false;
+ if ((src_resource->format_flags | dst_resource->format_flags) & WINED3DFMT_FLAG_HEIGHT_SCALE) + return false; + /* Source and/or destination need to be on the GL side. */ if (!(src_resource->access & dst_resource->access & WINED3D_RESOURCE_ACCESS_GPU)) return false;
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com
Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/wined3d/texture.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index a73b3b55e4b..5fd38b49132 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -6458,6 +6458,7 @@ static DWORD raw_blitter_blit(struct wined3d_blitter *blitter, enum wined3d_blit * We also can't copy between depth/stencil and colour resources, since * the formats are considered incompatible in OpenGL. */ if (op != WINED3D_BLIT_OP_RAW_BLIT || !gl_formats_compatible(src_texture, src_location, dst_texture, dst_location) + || ((src_texture->resource.format_flags | dst_texture->resource.format_flags) & WINED3DFMT_FLAG_HEIGHT_SCALE) || (src_texture->resource.format->id == dst_texture->resource.format->id && (!(src_location & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB)) || !(dst_location & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB)))))
Signed-off-by: Henri Verbeet hverbeet@codeweavers.com