-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
This patch has a few unrelated changes. The core change is that it re-introduces a hack we once had in Wine and removed because it broke newer mac GPUs. The CrossOver version of the hack works a bit better than the unconditional Wine version, but it's still ugly.
Am 2015-03-28 um 06:15 schrieb Sergey Isakov:
- /* Non-Apple GL vendors report uniforms correctly */
- if (!match_apple(gl_info, gl_renderer, gl_vendor, card_vendor, device)) return FALSE;
- /* All dx9 cards are overreported on OSX */
- if (!match_dx10_capable(gl_info, gl_renderer, gl_vendor, card_vendor, device)) return TRUE;
- /* Nvidia and Intel DX10 cards support > 256 uniforms */
- if (card_vendor != HW_VENDOR_AMD) return FALSE;
It is terrible that OSX lies about the GPU capability and then forces applications to have a crystal ball that tells them what the GPU can actually do.
- From a pragmatic point of view I don't think OSX will ever change in this regard. It was a design decision by Apple to do this, and they stopped updating drivers for the old hardware a long time ago.
I am open to re-introducing the hack if we can find a way to detect the bug more directly. E.g. try to declare a shader with 257 uniforms, read them with indirect addressing so the driver can't optimize the access and then check for software fallbacks. There's a CGL function for checking that, but I don't remember from the top of my head how it works.