I agree with your comments.
Ill extend this patch with more tests, like non-1channel textures and other corner cases. Also I will detail more on the logic behind the arguments used for the test.
Regarding the D3DPTEXTURECAPS_POW2, I just wanted to be sure those textures are supported, but if you think is not needed ill remove it in the next version.
And I can try to draft a DF16/DF24 tests. However I did not think it was necessary since the depth formats are very similar to other depth formats in wine. And there is 1:1 mapping between those depth formats. (DF16 -> D16, DF24 -> D24S8) (unless there is a difference in precision or int/float used for storage, but that is not detailed in the spec)
El jue., 22 nov. 2018 a las 15:01, Stefan Dösinger (< stefandoesinger@gmail.com>) escribió:
Hi,
Can you add a test showing that FETCH4 is disabled when the bound texture is not a single-channel texture? I sense that there might be applications that enable FETCH4 and then "forget" to disable it when they render from an ARGB texture.
A test for DF16 and DF24 would be great as well, but it doesn't belong in this patch and should be a separate one. It's probably best to extend intz_test.
- if (caps.TextureCaps & D3DPTEXTURECAPS_POW2)
- {
skip("No unconditional NP2 texture support, skipping FETCH4
test.\n");
IDirect3DDevice9_Release(device);
goto done;
- }
Do you still need this?
- hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MAGFILTER,
D3DTEXF_LINEAR);
- ok(SUCCEEDED(hr), "SetSamplerState failed, hr %#x.\n", hr);
- hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MINFILTER,
D3DTEXF_LINEAR);
- ok(SUCCEEDED(hr), "SetSamplerState failed, hr %#x.\n", hr);
- hr = IDirect3DDevice9_SetSamplerState(device, 0, D3DSAMP_MIPFILTER,
D3DTEXF_LINEAR);
- ok(SUCCEEDED(hr), "SetSamplerState failed, hr %#x.\n", hr);
This contradicts AMD's description, but I assume you placed them here to show that their docs are wrong and FETCH4 is used regardless of the filter. I think a comment would be useful.