mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-01 20:30:12 +01:00
cso: provide functions to bind fs/vs handles directly
This commit is contained in:
parent
c2afa182f3
commit
1dc5e56f3e
2 changed files with 28 additions and 8 deletions
|
|
@ -422,6 +422,16 @@ void cso_restore_rasterizer(struct cso_context *ctx)
|
|||
}
|
||||
|
||||
|
||||
void cso_set_fragment_shader_handle(struct cso_context *ctx,
|
||||
void *handle )
|
||||
{
|
||||
if (ctx->fragment_shader != handle) {
|
||||
ctx->fragment_shader = handle;
|
||||
ctx->pipe->bind_fs_state(ctx->pipe, handle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void cso_set_fragment_shader(struct cso_context *ctx,
|
||||
const struct pipe_shader_state *templ)
|
||||
{
|
||||
|
|
@ -453,10 +463,7 @@ void cso_set_fragment_shader(struct cso_context *ctx,
|
|||
handle = ((struct cso_fragment_shader *)cso_hash_iter_data(iter))->data;
|
||||
}
|
||||
|
||||
if (ctx->fragment_shader != handle) {
|
||||
ctx->fragment_shader = handle;
|
||||
ctx->pipe->bind_fs_state(ctx->pipe, handle);
|
||||
}
|
||||
cso_set_fragment_shader_handle( ctx, handle );
|
||||
}
|
||||
|
||||
void cso_save_fragment_shader(struct cso_context *ctx)
|
||||
|
|
@ -476,6 +483,16 @@ void cso_restore_fragment_shader(struct cso_context *ctx)
|
|||
}
|
||||
|
||||
|
||||
void cso_set_vertex_shader_handle(struct cso_context *ctx,
|
||||
void *handle )
|
||||
{
|
||||
if (ctx->vertex_shader != handle) {
|
||||
ctx->vertex_shader = handle;
|
||||
ctx->pipe->bind_vs_state(ctx->pipe, handle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void cso_set_vertex_shader(struct cso_context *ctx,
|
||||
const struct pipe_shader_state *templ)
|
||||
|
|
@ -503,12 +520,11 @@ void cso_set_vertex_shader(struct cso_context *ctx,
|
|||
handle = ((struct cso_vertex_shader *)cso_hash_iter_data(iter))->data;
|
||||
}
|
||||
|
||||
if (ctx->vertex_shader != handle) {
|
||||
ctx->vertex_shader = handle;
|
||||
ctx->pipe->bind_vs_state(ctx->pipe, handle);
|
||||
}
|
||||
cso_set_vertex_shader_handle( ctx, handle );
|
||||
}
|
||||
|
||||
|
||||
|
||||
void cso_save_vertex_shader(struct cso_context *ctx)
|
||||
{
|
||||
assert(!ctx->vertex_shader_saved);
|
||||
|
|
|
|||
|
|
@ -96,6 +96,8 @@ void cso_restore_sampler_textures( struct cso_context *cso );
|
|||
* (eg mesa's internall-generated texenv programs), it will be up to
|
||||
* the state tracker to implement their own specialized caching.
|
||||
*/
|
||||
void cso_set_fragment_shader_handle(struct cso_context *ctx,
|
||||
void *handle );
|
||||
void cso_set_fragment_shader( struct cso_context *cso,
|
||||
const struct pipe_shader_state *shader );
|
||||
void cso_save_fragment_shader(struct cso_context *cso);
|
||||
|
|
@ -103,6 +105,8 @@ void cso_restore_fragment_shader(struct cso_context *cso);
|
|||
|
||||
|
||||
|
||||
void cso_set_vertex_shader_handle(struct cso_context *ctx,
|
||||
void *handle );
|
||||
void cso_set_vertex_shader( struct cso_context *cso,
|
||||
const struct pipe_shader_state *shader );
|
||||
void cso_save_vertex_shader(struct cso_context *cso);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue