projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
nv50,nvc0: implement blit
[mesa.git]
/
src
/
gallium
/
drivers
/
svga
/
svga_pipe_fs.c
diff --git
a/src/gallium/drivers/svga/svga_pipe_fs.c
b/src/gallium/drivers/svga/svga_pipe_fs.c
index 2baeb4aa6c3e712f84935c05d69b0393c2ecf1aa..9aac546581eb7745242995943fc2125554a96304 100644
(file)
--- a/
src/gallium/drivers/svga/svga_pipe_fs.c
+++ b/
src/gallium/drivers/svga/svga_pipe_fs.c
@@
-28,9
+28,8
@@
#include "util/u_memory.h"
#include "util/u_bitmask.h"
#include "tgsi/tgsi_parse.h"
#include "util/u_memory.h"
#include "util/u_bitmask.h"
#include "tgsi/tgsi_parse.h"
-#include "
tgsi/tgsi_
text.h"
+#include "
draw/draw_con
text.h"
-#include "svga_screen.h"
#include "svga_context.h"
#include "svga_tgsi.h"
#include "svga_hw_reg.h"
#include "svga_context.h"
#include "svga_tgsi.h"
#include "svga_hw_reg.h"
@@
-47,7
+46,6
@@
svga_create_fs_state(struct pipe_context *pipe,
const struct pipe_shader_state *templ)
{
struct svga_context *svga = svga_context(pipe);
const struct pipe_shader_state *templ)
{
struct svga_context *svga = svga_context(pipe);
- struct svga_screen *svgascreen = svga_screen(pipe->screen);
struct svga_fragment_shader *fs;
fs = CALLOC_STRUCT(svga_fragment_shader);
struct svga_fragment_shader *fs;
fs = CALLOC_STRUCT(svga_fragment_shader);
@@
-61,8
+59,13
@@
svga_create_fs_state(struct pipe_context *pipe,
tgsi_scan_shader(fs->base.tokens, &fs->base.info);
fs->base.id = svga->debug.shader_id++;
tgsi_scan_shader(fs->base.tokens, &fs->base.info);
fs->base.id = svga->debug.shader_id++;
- fs->base.use_sm30 = svgascreen->use_ps30;
+ fs->generic_inputs = svga_get_generic_inputs_mask(&fs->base.info);
+
+ svga_remap_generics(fs->generic_inputs, fs->generic_remap_table);
+
+ fs->draw_shader = draw_create_fragment_shader(svga->swtnl.draw, templ);
+
if (SVGA_DEBUG & DEBUG_TGSI || 0) {
debug_printf("%s id: %u, inputs: %u, outputs: %u\n",
__FUNCTION__, fs->base.id,
if (SVGA_DEBUG & DEBUG_TGSI || 0) {
debug_printf("%s id: %u, inputs: %u, outputs: %u\n",
__FUNCTION__, fs->base.id,
@@
-92,6
+95,8
@@
void svga_delete_fs_state(struct pipe_context *pipe, void *shader)
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 ) {
tmp = result->next;
for (result = fs->base.results; result; result = tmp ) {
tmp = result->next;