gallium/util: add a window_space option to the passthrough vertex shader
Tested-by: Nick Sarnie <commendsarnex@gmail.com>
This commit is contained in:
parent
ad54b01896
commit
717f2dd69f
|
@ -131,7 +131,7 @@ pp_init_prog(struct pp_queue_t *ppq, struct pipe_context *pipe,
|
|||
const uint semantic_indexes[] = { 0, 0 };
|
||||
p->passvs = util_make_vertex_passthrough_shader(p->pipe, 2,
|
||||
semantic_names,
|
||||
semantic_indexes);
|
||||
semantic_indexes, FALSE);
|
||||
}
|
||||
|
||||
p->framebuffer.nr_cbufs = 1;
|
||||
|
|
|
@ -188,7 +188,7 @@ set_vertex_shader(struct blit_state *ctx)
|
|||
const uint semantic_indexes[] = { 0, 0 };
|
||||
ctx->vs = util_make_vertex_passthrough_shader(ctx->pipe, 2,
|
||||
semantic_names,
|
||||
semantic_indexes);
|
||||
semantic_indexes, FALSE);
|
||||
}
|
||||
|
||||
cso_set_vertex_shader_handle(ctx->cso, ctx->vs);
|
||||
|
|
|
@ -319,7 +319,8 @@ static void bind_vs_pos_only(struct blitter_context_priv *ctx)
|
|||
|
||||
ctx->vs_pos_only =
|
||||
util_make_vertex_passthrough_shader_with_so(pipe, 1, semantic_names,
|
||||
semantic_indices, &so);
|
||||
semantic_indices, FALSE,
|
||||
&so);
|
||||
}
|
||||
|
||||
pipe->bind_vs_state(pipe, ctx->vs_pos_only);
|
||||
|
@ -335,7 +336,7 @@ static void bind_vs_passthrough(struct blitter_context_priv *ctx)
|
|||
const uint semantic_indices[] = { 0, 0 };
|
||||
ctx->vs =
|
||||
util_make_vertex_passthrough_shader(pipe, 2, semantic_names,
|
||||
semantic_indices);
|
||||
semantic_indices, FALSE);
|
||||
}
|
||||
|
||||
pipe->bind_vs_state(pipe, ctx->vs);
|
||||
|
|
|
@ -59,11 +59,13 @@ void *
|
|||
util_make_vertex_passthrough_shader(struct pipe_context *pipe,
|
||||
uint num_attribs,
|
||||
const uint *semantic_names,
|
||||
const uint *semantic_indexes)
|
||||
const uint *semantic_indexes,
|
||||
bool window_space)
|
||||
{
|
||||
return util_make_vertex_passthrough_shader_with_so(pipe, num_attribs,
|
||||
semantic_names,
|
||||
semantic_indexes, NULL);
|
||||
semantic_indexes,
|
||||
window_space, NULL);
|
||||
}
|
||||
|
||||
void *
|
||||
|
@ -71,6 +73,7 @@ util_make_vertex_passthrough_shader_with_so(struct pipe_context *pipe,
|
|||
uint num_attribs,
|
||||
const uint *semantic_names,
|
||||
const uint *semantic_indexes,
|
||||
bool window_space,
|
||||
const struct pipe_stream_output_info *so)
|
||||
{
|
||||
struct ureg_program *ureg;
|
||||
|
@ -80,6 +83,9 @@ util_make_vertex_passthrough_shader_with_so(struct pipe_context *pipe,
|
|||
if (ureg == NULL)
|
||||
return NULL;
|
||||
|
||||
if (window_space)
|
||||
ureg_property_vs_window_space_position(ureg, TRUE);
|
||||
|
||||
for (i = 0; i < num_attribs; i++) {
|
||||
struct ureg_src src;
|
||||
struct ureg_dst dst;
|
||||
|
|
|
@ -47,13 +47,15 @@ extern void *
|
|||
util_make_vertex_passthrough_shader(struct pipe_context *pipe,
|
||||
uint num_attribs,
|
||||
const uint *semantic_names,
|
||||
const uint *semantic_indexes);
|
||||
const uint *semantic_indexes,
|
||||
bool window_space);
|
||||
|
||||
extern void *
|
||||
util_make_vertex_passthrough_shader_with_so(struct pipe_context *pipe,
|
||||
uint num_attribs,
|
||||
const uint *semantic_names,
|
||||
const uint *semantic_indexes,
|
||||
bool window_space,
|
||||
const struct pipe_stream_output_info *so);
|
||||
|
||||
extern void *
|
||||
|
|
|
@ -769,7 +769,8 @@ st_Bitmap(struct gl_context *ctx, GLint x, GLint y,
|
|||
const uint semantic_indexes[] = { 0, 0, 0 };
|
||||
st->bitmap.vs = util_make_vertex_passthrough_shader(st->pipe, 3,
|
||||
semantic_names,
|
||||
semantic_indexes);
|
||||
semantic_indexes,
|
||||
FALSE);
|
||||
}
|
||||
|
||||
if (UseBitmapCache && accum_bitmap(ctx, x, y, width, height, unpack, bitmap))
|
||||
|
|
|
@ -123,7 +123,8 @@ set_vertex_shader(struct st_context *st)
|
|||
const uint semantic_indexes[] = { 0, 0 };
|
||||
st->clear.vs = util_make_vertex_passthrough_shader(st->pipe, 2,
|
||||
semantic_names,
|
||||
semantic_indexes);
|
||||
semantic_indexes,
|
||||
FALSE);
|
||||
}
|
||||
|
||||
cso_set_vertex_shader_handle(st->cso_context, st->clear.vs);
|
||||
|
|
|
@ -91,7 +91,7 @@ lookup_shader(struct pipe_context *pipe,
|
|||
util_make_vertex_passthrough_shader(pipe,
|
||||
num_attribs,
|
||||
semantic_names,
|
||||
semantic_indexes);
|
||||
semantic_indexes, FALSE);
|
||||
NumCachedShaders++;
|
||||
|
||||
return CachedShaders[i].handle;
|
||||
|
|
Loading…
Reference in New Issue