diff options
| author | Roland Scheidegger <sroland@vmware.com> | 2014-05-07 19:06:39 +0200 |
|---|---|---|
| committer | Roland Scheidegger <sroland@vmware.com> | 2014-05-08 16:26:49 +0200 |
| commit | 9af68e9b1d116cdc8eb6a22bac091fe4716679e6 (patch) | |
| tree | fbcbda42c4b4a5f4079375f1457a909eaf5a558f /src/gallium/auxiliary/draw/draw_context.c | |
| parent | e6967270c75a5b669152127bb7a746d55f4407a6 (diff) | |
| download | external_mesa3d-9af68e9b1d116cdc8eb6a22bac091fe4716679e6.tar.gz external_mesa3d-9af68e9b1d116cdc8eb6a22bac091fe4716679e6.tar.bz2 external_mesa3d-9af68e9b1d116cdc8eb6a22bac091fe4716679e6.zip | |
draw: do not use draw_get_option_use_llvm() inside draw execution paths
1c73e919a4b4dd79166d0633075990056f27fd28 made it possible to not allocate
the tgsi machine if llvm was used. However, draw_get_option_use_llvm() is
not reliable after draw context creation, since drivers can explicitly
request a non-llvm draw context even if draw_get_option_use_llvm() would
return true (and softpipe does just that) which leads to crashes.
Thus use draw->llvm to determine if we're using llvm or not instead (and
make draw->llvm available even if HAVE_LLVM is false so we don't have to put
even more ifdefs).
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_context.c')
| -rw-r--r-- | src/gallium/auxiliary/draw/draw_context.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_context.c b/src/gallium/auxiliary/draw/draw_context.c index ddc305b3b8..d7197fd993 100644 --- a/src/gallium/auxiliary/draw/draw_context.c +++ b/src/gallium/auxiliary/draw/draw_context.c @@ -1000,6 +1000,8 @@ draw_get_shader_param_no_llvm(unsigned shader, enum pipe_shader_cap param) /** * XXX: Results for PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS because there are two * different ways of setting textures, and drivers typically only support one. + * Drivers requesting a draw context explicitly without llvm must call + * draw_get_shader_param_no_llvm instead. */ int draw_get_shader_param(unsigned shader, enum pipe_shader_cap param) |
