#include "svga_debug.h"
-/***********************************************************************
- * Fragment shaders
- */
-
static void *
svga_create_fs_state(struct pipe_context *pipe,
const struct pipe_shader_state *templ)
tgsi_scan_shader(fs->base.tokens, &fs->base.info);
fs->base.id = svga->debug.shader_id++;
-
+
fs->generic_inputs = svga_get_generic_inputs_mask(&fs->base.info);
svga_remap_generics(fs->generic_inputs, fs->generic_remap_table);
return fs;
}
+
static void
svga_bind_fs_state(struct pipe_context *pipe, void *shader)
{
svga->dirty |= SVGA_NEW_FS;
}
-static
-void svga_delete_fs_state(struct pipe_context *pipe, void *shader)
+
+static void
+svga_delete_fs_state(struct pipe_context *pipe, void *shader)
{
struct svga_context *svga = svga_context(pipe);
struct svga_fragment_shader *fs = (struct svga_fragment_shader *) shader;
struct svga_shader_result *result, *tmp;
enum pipe_error ret;
- svga_hwtnl_flush_retry( svga );
+ svga_hwtnl_flush_retry(svga);
draw_delete_fragment_shader(svga->swtnl.draw, fs->draw_shader);
- for (result = fs->base.results; result; result = tmp ) {
+ for (result = fs->base.results; result; result = tmp) {
tmp = result->next;
- ret = SVGA3D_DestroyShader(svga->swc,
- result->id,
- SVGA3D_SHADERTYPE_PS );
- if(ret != PIPE_OK) {
+ ret = SVGA3D_DestroyShader(svga->swc, result->id, SVGA3D_SHADERTYPE_PS);
+ if (ret != PIPE_OK) {
svga_context_flush(svga, NULL);
- ret = SVGA3D_DestroyShader(svga->swc,
- result->id,
- SVGA3D_SHADERTYPE_PS );
+ ret = SVGA3D_DestroyShader(svga->swc, result->id,
+ SVGA3D_SHADERTYPE_PS);
assert(ret == PIPE_OK);
}
- util_bitmask_clear( svga->fs_bm, result->id );
+ util_bitmask_clear(svga->fs_bm, result->id);
- svga_destroy_shader_result( result );
+ svga_destroy_shader_result(result);
/*
* Remove stale references to this result to ensure a new result on the
* same address will be detected as a change.
*/
- if(result == svga->state.hw_draw.fs)
+ if (result == svga->state.hw_draw.fs)
svga->state.hw_draw.fs = NULL;
}
}
-void svga_init_fs_functions( struct svga_context *svga )
+void
+svga_init_fs_functions(struct svga_context *svga)
{
svga->pipe.create_fs_state = svga_create_fs_state;
svga->pipe.bind_fs_state = svga_bind_fs_state;
svga->pipe.delete_fs_state = svga_delete_fs_state;
}
-
#include "svga_debug.h"
-static const struct tgsi_token *substitute_vs(
- unsigned shader_id,
- const struct tgsi_token *old_tokens )
+/**
+ * Substitute a debug shader.
+ */
+static const struct tgsi_token *
+substitute_vs(unsigned shader_id, const struct tgsi_token *old_tokens)
{
#if 0
if (shader_id == 12) {
static struct tgsi_token tokens[300];
- const char *text =
+ const char *text =
"VERT\n"
"DCL IN[0]\n"
"DCL IN[1]\n"
" MOV OUT[0], TEMP[4]\n"
" END\n";
- if (!tgsi_text_translate( text,
+ if (!tgsi_text_translate(text,
tokens,
- Elements(tokens) ))
+ Elements(tokens)))
{
assert(0);
return NULL;
}
-/***********************************************************************
- * Vertex shaders
- */
-
static void *
svga_create_vs_state(struct pipe_context *pipe,
const struct pipe_shader_state *templ)
vs->base.tokens = tgsi_dup_tokens(substitute_vs(svga->debug.shader_id,
templ->tokens));
-
/* Collect basic info that we'll need later:
*/
tgsi_scan_shader(vs->base.tokens, &vs->base.info);
return vs;
}
-static void svga_bind_vs_state(struct pipe_context *pipe, void *shader)
+
+static void
+svga_bind_vs_state(struct pipe_context *pipe, void *shader)
{
struct svga_vertex_shader *vs = (struct svga_vertex_shader *)shader;
struct svga_context *svga = svga_context(pipe);
}
-static void svga_delete_vs_state(struct pipe_context *pipe, void *shader)
+static void
+svga_delete_vs_state(struct pipe_context *pipe, void *shader)
{
struct svga_context *svga = svga_context(pipe);
struct svga_vertex_shader *vs = (struct svga_vertex_shader *)shader;
struct svga_shader_result *result, *tmp;
enum pipe_error ret;
- svga_hwtnl_flush_retry( svga );
+ svga_hwtnl_flush_retry(svga);
draw_delete_vertex_shader(svga->swtnl.draw, vs->draw_shader);
-
- for (result = vs->base.results; result; result = tmp ) {
+
+ for (result = vs->base.results; result; result = tmp) {
tmp = result->next;
- ret = SVGA3D_DestroyShader(svga->swc,
- result->id,
- SVGA3D_SHADERTYPE_VS );
- if(ret != PIPE_OK) {
+ ret = SVGA3D_DestroyShader(svga->swc, result->id, SVGA3D_SHADERTYPE_VS);
+ if (ret != PIPE_OK) {
svga_context_flush(svga, NULL);
- ret = SVGA3D_DestroyShader(svga->swc,
- result->id,
- SVGA3D_SHADERTYPE_VS );
+ ret = SVGA3D_DestroyShader(svga->swc, result->id,
+ SVGA3D_SHADERTYPE_VS);
assert(ret == PIPE_OK);
}
- util_bitmask_clear( svga->vs_bm, result->id );
+ util_bitmask_clear(svga->vs_bm, result->id);
- svga_destroy_shader_result( result );
+ svga_destroy_shader_result(result);
/*
* Remove stale references to this result to ensure a new result on the
* same address will be detected as a change.
*/
- if(result == svga->state.hw_draw.vs)
+ if (result == svga->state.hw_draw.vs)
svga->state.hw_draw.vs = NULL;
}
}
-void svga_init_vs_functions( struct svga_context *svga )
+void
+svga_init_vs_functions(struct svga_context *svga)
{
svga->pipe.create_vs_state = svga_create_vs_state;
svga->pipe.bind_vs_state = svga_bind_vs_state;