diff options
author | Iago Toral Quiroga <[email protected]> | 2015-01-07 10:08:57 +0100 |
---|---|---|
committer | Iago Toral Quiroga <[email protected]> | 2015-01-16 14:16:59 +0100 |
commit | 6367ca8b41ce99de21a27953713413d678e5d30d (patch) | |
tree | ef8d146f276ffb32ffe2c8399e48840a1bfb5390 /src/mesa/main/format_utils.h | |
parent | bc6e57e019bd2399a70acabcad21217aadf2944c (diff) |
i965/gen6: Fix crash with VS+TF after rendering with GS
Rendering with a GS and then using transform feedback with a program that does
not have a GS can crash in gen6. The reason for this is that
brw_begin_transform_feedback checks brw->geometry_program to decide if there
is a GS program, but this is not correct: brw->geometry_program is updated when
issuing drawing commands, so after rendering with a GS it will be non-NULL
until we draw again with a program that does not have a GS. If the next
program uses TF, we will call glBegintransformFeedback before issuing
the drawing command and hence brw->geometry_program will be non-NULL if
the previous rendering used a GS. The right thing to do here is to check
ctx->_Shader->CurrentProgram[MESA_SHADER_GEOMETRY] instead. This is what the
gen7 code path does too.
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=87694
Reviewed-by: Tapani Pälli <[email protected]>
Diffstat (limited to 'src/mesa/main/format_utils.h')
0 files changed, 0 insertions, 0 deletions