Re: [AD] ex_depth_mask slow with D3D |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
On Mon, 28 May 2012 00:08:43 +1000
Peter Wang <novalazy@xxxxxxxxxx> wrote:
> On Sun, 27 May 2012 13:48:57 +0200, Elias Pschernig
> <elias.pschernig@xxxxxxxxxx> wrote:
> >
> > Can you paste or look at allegro.log? It should say if it had to
> > try several modes before creating a D3D Device, and also whether it
> > ended up with a reference driver instead of the GPU vendor driver.
>
> I compared the log output under Windows and under Wine (where it
> works). The main difference that I can see is that the Windows log
> also contains these lines:
>
> trying D3DCREATE_SOFTWARE_VERTEXPROCESSING
> trying D3DDEVTYPE_REF
>
> I've attached the log in any case.
>
d3d D d3d_disp.cpp:1848 d3d_create_display_internals [ 0.30414] Trying format 0 of 624.
d3d I d3d_disp.cpp:1519 d3d_display_thread_proc [ 0.30512] Chose a display format: 13
d3d I d3d_disp.cpp:1588 d3d_display_thread_proc [ 0.30521] Normal window.
d3d I d3d_disp.cpp:995 d3d_create_device [ 0.30866] Chose depth stencil format 73
d3d D d3d_disp.cpp:1023 d3d_create_device [ 0.30997] trying D3DCREATE_SOFTWARE_VERTEXPROCESSING
d3d D d3d_disp.cpp:1028 d3d_create_device [ 0.31186] trying D3DDEVTYPE_REF
So yes, just as I suspected. It takes the very first format which fails
(probably has no depth buffer at all). And then switches to the
reference (software implemented) driver.
Can you try modifying the code in win/d3d_disp.cpp after line 705?
Simply use only the first of those 4 ifs. I.e. when CreateDeviceEx
fails let it fail and don't try to repeat it with the reference driver.
I actually wonder if there ever is any merit in using that, even on very
old PCs.
Also, why is the scorer done in such a weird way? It seems like it
would make more sense to simply not include modes for which
CreateDeviceEx can fail (unless there is no way to know that
beforehand).