On 12 May 2013 15:30, Stefan Dösinger stefan@codeweavers.com wrote:
/* Disable shaders */
- device->shader_backend->shader_select(context, WINED3D_SHADER_MODE_NONE, WINED3D_SHADER_MODE_NONE);
- device->shader_backend->shader_select(context, WINED3D_SHADER_MODE_NONE, WINED3D_SHADER_MODE_NONE,
NULL, device->shader_priv);
I think that's a bit questionable. Passing NULL state happens to work for this set of arguments, but I don't think we want that to be part of the interface.
Am 13.05.2013 um 15:28 schrieb Henri Verbeet hverbeet@gmail.com:
On 12 May 2013 15:30, Stefan Dösinger stefan@codeweavers.com wrote:
/* Disable shaders */
- device->shader_backend->shader_select(context, WINED3D_SHADER_MODE_NONE, WINED3D_SHADER_MODE_NONE);
- device->shader_backend->shader_select(context, WINED3D_SHADER_MODE_NONE, WINED3D_SHADER_MODE_NONE,
NULL, device->shader_priv);
I think that's a bit questionable. Passing NULL state happens to work for this set of arguments, but I don't think we want that to be part of the interface.
I think it's the best solution. SetupForBlit does not have any state information, which makes sense because it has no relation with d3d draws. Even if we grab some state information from somewhere (e.g. the stateblock, or the command stream) there's no guarantee that it is set up in a useful way. It could e.g. have a NULL vdecl or mismatched vertex/pixel shaders etc.
On 13 May 2013 16:39, Stefan Dösinger stefan@codeweavers.com wrote:
Am 13.05.2013 um 15:28 schrieb Henri Verbeet hverbeet@gmail.com:
On 12 May 2013 15:30, Stefan Dösinger stefan@codeweavers.com wrote:
/* Disable shaders */
- device->shader_backend->shader_select(context, WINED3D_SHADER_MODE_NONE, WINED3D_SHADER_MODE_NONE);
- device->shader_backend->shader_select(context, WINED3D_SHADER_MODE_NONE, WINED3D_SHADER_MODE_NONE,
NULL, device->shader_priv);
I think that's a bit questionable. Passing NULL state happens to work for this set of arguments, but I don't think we want that to be part of the interface.
I think it's the best solution. SetupForBlit does not have any state information, which makes sense because it has no relation with d3d draws. Even if we grab some state information from somewhere (e.g. the stateblock, or the command stream) there's no guarantee that it is set up in a useful way. It could e.g. have a NULL vdecl or mismatched vertex/pixel shaders etc.
Maybe. Perhaps we could also just get rid of WINED3D_SHADER_MODE_NONE and add a separate call instead.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Am 2013-05-13 17:44, schrieb Henri Verbeet:
Maybe. Perhaps we could also just get rid of WINED3D_SHADER_MODE_NONE and add a separate call instead.
Sounds like a plan, as we're never using WINED3D_SHADER_MODE_NONE for just one shader type. Please also skip patch 3, I'll adjust shader_arb_load_constants_internal according to your comments for patch 4.