[3/4]
Henri Verbeet
hverbeet at gmail.com
Mon Dec 8 02:44:28 CST 2008
2008/12/8 Stefan Dösinger <stefan at codeweavers.com>:
> + /* TODO: If we're called by shader_glsl_select, we know that both we get past both checks.
> + * is it cheaper to have a wrapper function check those? Inline some common code? Extra
> + * parameter?
> + */
> if (!prog) {
> /* No GLSL program set - nothing to do. */
> return;
> + } else if(isStateDirty(context, STATE_PIXELSHADER) ||
> + isStateDirty(context, STATE_VDECL) ||
> + isStateDirty(context, STATE_PIXELSHADERCONSTANT) ||
> + isStateDirty(context, STATE_VERTEXSHADERCONSTANT)) {
> + /* Will be called again later */
> + return;
If you're going to introduce a dependency on state management in the
shader backends anyway, you don't need to export constant loading
functions from the shader backends at all. You might as well just call
shader_select(), and let that figure out if it needs to change the
shader or load any constants. That would also avoid this not-so-pretty
code here.
More information about the wine-devel
mailing list