-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hi,
Thanks for catching this bug. You'll have to submit your patch with your real name, and as Aaryaman stated, a signed off line.
Am 2016-05-21 um 10:46 schrieb contrib@maxqia.com:
- if (!surface)
- if (!surface || surface->container->resource.format->id == WINED3DFMT_NULL) { key->objects[idx].object = 0; key->objects[idx].target = 0;
My sense is that a D3DFMT_NULL texture should hever have a GL texture allocated, so going through the final else path should be ok - surface_get_texture_name returns 0, and context_attach_surface_fbo ignores the other fields if object is 0. Can you check if object is != 0 in the case where it fails, and see where the value comes from? I can imagine that the game manually calls PreLoad on a NULL texture as a possible cause. In our draw and clear code we're skipping the GL texture allocation for NULL resources.
If the GL texture is not 0 I expect that you get a GL error before context_set_fbo_key_for_surface is run. If it is indeed 0 and something goes wrong at a later point then my reasoning above must be wrong in some way.