Slice, on 01 May 2015 - 06:34 AM, said:
My engine assumes some tricks.
1. After creating new blank wrapper with Wineskin you have to navigate to Wrapper.app/Contents/Frameworks and replace libraries with my versions
2. Open "Set Screen Options" and set "Use Mac Driver Instead Of X11". Almost always required.
3. Open "Config Utility" and Enable/Disable CSMT. Some application will work faster, some may crashes.
CSMT hard using CPU so it will be hotter.
4. Open "Registry Editor" and navigate to "HKEY_CURRENT_USER\Software\Wine\Direct3D"
Create new key UserQuirks as DWORD. Set value 0x0f
Later you may enable/disable some bits to see what is happen.
1 = BLIT_QUIRK
2 = DISABLE_DXTN - it resolves bug #1
4 = RESERVE_12_UNIFORMS
8 = FIX_TEXCOORD
For pure Wine default is all set. So value = 0x0f
So basically, this is the chart we should ultimately follow when editing user quirks
free image uploading
Some explanation what those quirks do
1 = bit 0
/* ATI Macs blend blits even though GL_EXT_framebuffer_blit says that this
* operation does not blend. This sometimes even happens if GL_BLEND is
* disabled, although in my glut test case blending has to be enabled for
* the bug to occur. While we're at it, disable blending.
* Tracked by crossover hacks bug 5391. */
This hack is not included neither to WineHW nor to WineStage. Only in Crossover and conditionally in Sherry.
If set then will be applied.
2 = bit 1
If set then the game can't create Volume Textures compressed by DXTn method. Set this bit allows Heroes VI works.
4 = bit2
/* MacOS needs uniforms for relative addressing offsets. This can accumulate to quite a few uniforms.
* Beyond that the general uniform isn't optimal, so reserve a number of uniforms. 12 vec4's should
* allow 48 different offsets or other helper immediate values. */
8 = bit3
/* The Intel GPUs on MacOS set the .w register of texcoords to 0.0 by default, which causes problems
* with fixed function fragment processing. Ideally this flag should be detected with a test shader
* and OpenGL feedback mode, but some GL implementations (MacOS ATI at least, probably all MacOS ones)
* do not like vertex shaders in feedback mode and return an error, even though it should be valid
* according to the spec.
* We don't want to enable this on all cards, as it adds an extra instruction per texcoord used. This
* makes the shader slower and eats instruction slots which should be available to the d3d app.
* ATI Radeon HD 2xxx cards on MacOS have the issue. Instead of checking for the buggy cards, blacklist
* all radeon cards on Macs and whitelist the good ones. That way we're prepared for the future. If
* this workaround is activated on cards that do not need it, it won't break things, just affect
* performance negatively. */
team edit: dankoB
reason: streamlined for user easibility