summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2015-03-12 05:52:13 -0700
committerKenneth Graunke <kenneth@whitecape.org>2015-10-21 14:27:49 -0700
commit6ae419b94d7a7d2dfbb9a2908d28ca5aea4724e3 (patch)
tree635e064daab6b4e5a792b1412c1d87426a872a1e /src
parent72d84ae7ceaed4e723376a18d09689be183e0155 (diff)
i965: Make fs_visitor::emit_urb_writes reusable for scalar GS.
GS doesn't have ClampVertexColor, and we don't want to go through VS structures. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_visitor.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index f825fed4daf..d7c4a6e213d 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -868,13 +868,13 @@ void
fs_visitor::emit_urb_writes()
{
int slot, urb_offset, length;
- struct brw_vs_prog_data *vs_prog_data =
- (struct brw_vs_prog_data *) prog_data;
- const struct brw_vs_prog_key *key =
+ const struct brw_vue_prog_data *vue_prog_data =
+ (const struct brw_vue_prog_data *) this->prog_data;
+ const struct brw_vs_prog_key *vs_key =
(const struct brw_vs_prog_key *) this->key;
const GLbitfield64 psiz_mask =
VARYING_BIT_LAYER | VARYING_BIT_VIEWPORT | VARYING_BIT_PSIZ;
- const struct brw_vue_map *vue_map = &vs_prog_data->base.vue_map;
+ const struct brw_vue_map *vue_map = &vue_prog_data->vue_map;
bool flush;
fs_reg sources[8];
@@ -961,11 +961,11 @@ fs_visitor::emit_urb_writes()
break;
}
- if ((varying == VARYING_SLOT_COL0 ||
+ if (stage == MESA_SHADER_VERTEX && vs_key->clamp_vertex_color &&
+ (varying == VARYING_SLOT_COL0 ||
varying == VARYING_SLOT_COL1 ||
varying == VARYING_SLOT_BFC0 ||
- varying == VARYING_SLOT_BFC1) &&
- key->clamp_vertex_color) {
+ varying == VARYING_SLOT_BFC1)) {
/* We need to clamp these guys, so do a saturating MOV into a
* temp register and use that for the payload.
*/