Am Friday 14 August 2009 09:23:25 schrieb Henri Verbeet:
For most cards this should make more sense than RTL_READDRAW, even if e.g. surface_upload_data() has some room for improvement.
I don't think this is a good idea until the READDRAW code has the ability to only upload a part of the surface if a limited rectangle was locked
dlls/wined3d/surface.c | 1 - dlls/wined3d/wined3d_main.c | 2 +- dlls/wined3d/wined3d_private.h | 1 - 3 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 29ad00d..781a6b2 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -1518,7 +1518,6 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_UnlockRect(IWineD3DSurface *iface) { IWineD3DSurface_LoadLocation(iface, SFLAG_INTEXTURE, NULL /* partial texture loading not supported yet */); /* drop through */
case RTL_AUTO: case RTL_READDRAW: IWineD3DSurface_LoadLocation(iface, SFLAG_INDRAWABLE,
fullsurface ? NULL : &This->dirtyRect); break; diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c index 881f90e..4feb509 100644 --- a/dlls/wined3d/wined3d_main.c +++ b/dlls/wined3d/wined3d_main.c @@ -41,7 +41,7 @@ wined3d_settings_t wined3d_settings = PS_HW, /* Hardware by default */ TRUE, /* Use of GLSL enabled by default */ ORM_FBO, /* Use FBOs to do offscreen rendering */
- RTL_AUTO, /* Automatically determine best locking method */
- RTL_READTEX, /* Default render target locking method */ PCI_VENDOR_NONE,/* PCI Vendor ID */ PCI_DEVICE_NONE,/* PCI Device ID */ 0, /* The default of memory is set in FillGLCaps */
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 8df99f6..5f88afd 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -267,7 +267,6 @@ static inline float float_24_to_32(DWORD in) #define SHADER_NONE 4
#define RTL_DISABLE -1 -#define RTL_AUTO 0 #define RTL_READDRAW 1 #define RTL_READTEX 2
2009/8/14 Stefan Dösinger stefandoesinger@gmx.at:
Am Friday 14 August 2009 09:23:25 schrieb Henri Verbeet:
For most cards this should make more sense than RTL_READDRAW, even if e.g. surface_upload_data() has some room for improvement.
I don't think this is a good idea until the READDRAW code has the ability to only upload a part of the surface if a limited rectangle was locked
You probably mean RTL_READTEX, surface_upload_data() specifically, but I did mention that in the commit message.
Am Friday 14 August 2009 12:13:01 schrieb Henri Verbeet:
2009/8/14 Stefan Dösinger stefandoesinger@gmx.at:
Am Friday 14 August 2009 09:23:25 schrieb Henri Verbeet:
For most cards this should make more sense than RTL_READDRAW, even if e.g. surface_upload_data() has some room for improvement.
I don't think this is a good idea until the READDRAW code has the ability to only upload a part of the surface if a limited rectangle was locked
You probably mean RTL_READTEX, surface_upload_data() specifically, but I did mention that in the commit message.
I should not write emails directly after getting up... READTEX was what I meant.
What I am also wondering about this patch: Its general wisdom that texture load + draw a quad is faster than glDrawPixels, although glDrawPixels is the more natural match to framebuffer locking. Why aren't drivers implementing glDrawPixels with texture+draw in that case? Or does glDrawPixels do anything we don't need that slows it down compared to the texture codepath?
Actually, do you have an application that needs partial texture updates? I implemented it, but I need something to test against.
The best test case I think for that is ddraw-gl. A lot of 2D games use partial locking.
Roderick
On Sun, Aug 16, 2009 at 10:43 PM, Henri Verbeethverbeet@gmail.com wrote:
Actually, do you have an application that needs partial texture updates? I implemented it, but I need something to test against.
Am Sunday 16 August 2009 22:59:15 schrieb Roderick Colenbrander:
The best test case I think for that is ddraw-gl. A lot of 2D games use partial locking.
Roderick
On Sun, Aug 16, 2009 at 10:43 PM, Henri Verbeethverbeet@gmail.com wrote:
Actually, do you have an application that needs partial texture updates? I implemented it, but I need something to test against.
Age of Empires 2 might be a useful test app. It does frontbuffer->frontbuffer blits when scrolling