summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/state_tracker/st_cb_bitmap.c4
-rw-r--r--src/mesa/state_tracker/st_cb_clear.c5
-rw-r--r--src/mesa/state_tracker/st_context.h3
3 files changed, 9 insertions, 3 deletions
diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c
index 0291b03143..64b1882424 100644
--- a/src/mesa/state_tracker/st_cb_bitmap.c
+++ b/src/mesa/state_tracker/st_cb_bitmap.c
@@ -487,13 +487,15 @@ st_Bitmap(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height,
const uint semantic_indexes[] = { 0, 0, 0 };
st->bitmap.vs = util_make_vertex_passthrough_shader(st->pipe, 3,
semantic_names,
- semantic_indexes);
+ semantic_indexes,
+ &st->bitmap.vert_shader);
}
st_validate_state(st);
pt = make_bitmap_texture(ctx, width, height, unpack, bitmap);
if (pt) {
+ assert(pt->target == PIPE_TEXTURE_2D);
draw_bitmap_quad(ctx, x, y, ctx->Current.RasterPos[2],
width, height,
pt, stfp);
diff --git a/src/mesa/state_tracker/st_cb_clear.c b/src/mesa/state_tracker/st_cb_clear.c
index 5ca15df602..ec8d3e1022 100644
--- a/src/mesa/state_tracker/st_cb_clear.c
+++ b/src/mesa/state_tracker/st_cb_clear.c
@@ -251,7 +251,7 @@ clear_with_quad(GLcontext *ctx,
/* fragment shader state: color pass-through program */
if (!st->clear.fs) {
- st->clear.fs = util_make_fragment_passthrough_shader(pipe);
+ st->clear.fs = util_make_fragment_passthrough_shader(pipe, &st->clear.frag_shader);
}
pipe->bind_fs_state(pipe, st->clear.fs);
@@ -264,7 +264,8 @@ clear_with_quad(GLcontext *ctx,
const uint semantic_indexes[] = { 0, 0 };
st->clear.vs = util_make_vertex_passthrough_shader(pipe, 2,
semantic_names,
- semantic_indexes);
+ semantic_indexes,
+ &st->clear.vert_shader);
}
pipe->bind_vs_state(pipe, st->clear.vs);
#endif
diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h
index 2d37086799..f235c194b7 100644
--- a/src/mesa/state_tracker/st_context.h
+++ b/src/mesa/state_tracker/st_context.h
@@ -147,6 +147,7 @@ struct st_context
struct st_fragment_program *program; /**< bitmap tex/kil program */
GLuint user_prog_sn; /**< user fragment program serial no. */
struct st_fragment_program *combined_prog;
+ struct pipe_shader_state vert_shader;
void *vs;
float vertices[4][3][4]; /**< vertex pos + color + texcoord */
struct pipe_buffer *vbuf;
@@ -154,6 +155,8 @@ struct st_context
/** for glClear */
struct {
+ struct pipe_shader_state vert_shader;
+ struct pipe_shader_state frag_shader;
void *vs;
void *fs;
float vertices[4][2][4]; /**< vertex pos + color */