On 08/01/2011 10:20 AM, Ian Romanick wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > Rely on the driver to do the right thing. This probably means falling > back to software. Page 88 of the OpenGL 2.1 spec specifically says: > > "A shader should not fail to compile, and a program object should > not fail to link due to lack of instruction space or lack of > temporary variables. Implementations should ensure that all valid > shaders and program objects may be successfully compiled, linked > and executed." > > There is no provision for saying "No" to a valid shader that is > difficult for the hardware to handle, so stop doing that. > > On i915 this causes a large number of piglit tests to change from FAIL > to WARN. The warning is because the driver still emits messages to > stderr like "i915_program_error: Unsupported opcode: BGNLOOP". > > It also fixes ES2 conformance CorrectFull_frag and CorrectParse1_frag > on i915 (and probably other hardware that can't handle loops). > --- > src/mesa/program/ir_to_mesa.cpp | 28 ++++++++++++++++++++++++---- > 1 files changed, 24 insertions(+), 4 deletions(-)
Presumably drivers are set up to handle cases where these opcodes slip through? I'd hate for them to crash because we started letting things through. Though, admittedly, that's a bug in the driver, so if the compiler were to stop hiding it, people could go fix that. :) Plus, it looks like i915 already handles them, i965 supports everything so it doesn't matter, and Gallium's dropping ir_to_mesa soon. So, meh. :) Fears unfounded. Looks like the right thing to do. Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev