diff options
author | Kenneth Graunke <[email protected]> | 2014-11-30 01:35:14 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2014-12-04 15:04:35 -0800 |
commit | 7b6620faf5b2cb327a749eee35ee20ea68a009fe (patch) | |
tree | 0e1ade5d07c937d765c3171ae54a6e0e82ec3d4c /docs/xlibdriver.html | |
parent | d300e58db0db8e44bd430bfc22d612355e4aab31 (diff) |
i965: Store floating point mode choice in brw_stage_prog_data.
We use IEEE mode for GLSL programs, but need to use ALT mode for ARB
programs so that 0^0 == 1. The choice is based entirely on the shader
source language.
Previously, our code to determine which mode we wanted was duplicated
in 8 different places (VS and FS for Gen4-5, Gen6, Gen7, and Gen8).
The ctx->_Shader->CurrentProgram[stage] == NULL check was confusing
as well - we use CurrentProgram (non-derived state), but _Shader
(derived state). It also relies on knowing that ARB programs don't
use gl_shader_program structures today. The compiler already makes
this assumption in a few places, but I'd rather keep that assumption
out of the state upload code.
With this patch, we select the mode at compile time, and store that
choice in prog_data. The state upload code simply uses that decision.
This eliminates a BRW_NEW_*_PROGRAM dependency in the state upload code.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'docs/xlibdriver.html')
0 files changed, 0 insertions, 0 deletions