Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
virgl-es
mesa
Commits
c2b800cf
Commit
c2b800cf
authored
Jan 23, 2012
by
Marek Olšák
Browse files
r600g: nuke the fallback for vertex and fragment color clamping
parent
7023ed9e
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/gallium/drivers/r600/evergreen_state.c
View file @
c2b800cf
...
...
@@ -902,8 +902,6 @@ static void *evergreen_create_rs_state(struct pipe_context *ctx,
}
rstate
=
&
rs
->
rstate
;
rs
->
clamp_vertex_color
=
state
->
clamp_vertex_color
;
rs
->
clamp_fragment_color
=
state
->
clamp_fragment_color
;
rs
->
flatshade
=
state
->
flatshade
;
rs
->
sprite_coord_enable
=
state
->
sprite_coord_enable
;
rs
->
two_side
=
state
->
light_twoside
;
...
...
src/gallium/drivers/r600/r600_pipe.h
View file @
c2b800cf
...
...
@@ -105,8 +105,6 @@ struct r600_pipe_sampler_view {
struct
r600_pipe_rasterizer
{
struct
r600_pipe_state
rstate
;
boolean
clamp_vertex_color
;
boolean
clamp_fragment_color
;
boolean
flatshade
;
boolean
two_side
;
unsigned
sprite_coord_enable
;
...
...
@@ -217,8 +215,6 @@ struct r600_pipe_context {
struct
pipe_query
*
saved_render_cond
;
unsigned
saved_render_cond_mode
;
/* shader information */
boolean
clamp_vertex_color
;
boolean
clamp_fragment_color
;
boolean
two_side
;
unsigned
user_clip_plane_enable
;
unsigned
clip_dist_enable
;
...
...
src/gallium/drivers/r600/r600_shader.c
View file @
c2b800cf
...
...
@@ -835,10 +835,6 @@ static int r600_shader_from_tgsi(struct r600_pipe_context * rctx, struct r600_pi
ctx
.
clip_vertex_write
=
0
;
shader
->
two_side
=
(
ctx
.
type
==
TGSI_PROCESSOR_FRAGMENT
)
&&
rctx
->
two_side
;
shader
->
clamp_color
=
(((
ctx
.
type
==
TGSI_PROCESSOR_FRAGMENT
)
&&
rctx
->
clamp_fragment_color
)
||
((
ctx
.
type
==
TGSI_PROCESSOR_VERTEX
)
&&
rctx
->
clamp_vertex_color
));
shader
->
nr_cbufs
=
rctx
->
nr_cbufs
;
/* register allocations */
...
...
@@ -1034,37 +1030,6 @@ static int r600_shader_from_tgsi(struct r600_pipe_context * rctx, struct r600_pi
}
}
/* clamp color outputs */
if
(
shader
->
clamp_color
)
{
for
(
i
=
0
;
i
<
noutput
;
i
++
)
{
if
(
shader
->
output
[
i
].
name
==
TGSI_SEMANTIC_COLOR
||
shader
->
output
[
i
].
name
==
TGSI_SEMANTIC_BCOLOR
)
{
int
j
;
for
(
j
=
0
;
j
<
4
;
j
++
)
{
struct
r600_bytecode_alu
alu
;
memset
(
&
alu
,
0
,
sizeof
(
struct
r600_bytecode_alu
));
/* MOV_SAT R, R */
alu
.
inst
=
BC_INST
(
ctx
.
bc
,
V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV
);
alu
.
dst
.
sel
=
shader
->
output
[
i
].
gpr
;
alu
.
dst
.
chan
=
j
;
alu
.
dst
.
write
=
1
;
alu
.
dst
.
clamp
=
1
;
alu
.
src
[
0
].
sel
=
alu
.
dst
.
sel
;
alu
.
src
[
0
].
chan
=
j
;
if
(
j
==
3
)
{
alu
.
last
=
1
;
}
r
=
r600_bytecode_add_alu
(
ctx
.
bc
,
&
alu
);
if
(
r
)
return
r
;
}
}
}
}
/* Add stream outputs. */
if
(
ctx
.
type
==
TGSI_PROCESSOR_VERTEX
&&
so
.
num_outputs
)
{
for
(
i
=
0
;
i
<
so
.
num_outputs
;
i
++
)
{
...
...
src/gallium/drivers/r600/r600_shader.h
View file @
c2b800cf
...
...
@@ -48,7 +48,6 @@ struct r600_shader {
boolean
uses_kill
;
boolean
fs_write_all
;
boolean
vs_prohibit_ucps
;
boolean
clamp_color
;
boolean
two_side
;
unsigned
nr_cbufs
;
/* bit n is set if the shader writes gl_ClipDistance[n] */
...
...
src/gallium/drivers/r600/r600_state.c
View file @
c2b800cf
...
...
@@ -954,8 +954,6 @@ static void *r600_create_rs_state(struct pipe_context *ctx,
}
rstate
=
&
rs
->
rstate
;
rs
->
clamp_vertex_color
=
state
->
clamp_vertex_color
;
rs
->
clamp_fragment_color
=
state
->
clamp_fragment_color
;
rs
->
flatshade
=
state
->
flatshade
;
rs
->
sprite_coord_enable
=
state
->
sprite_coord_enable
;
rs
->
two_side
=
state
->
light_twoside
;
...
...
src/gallium/drivers/r600/r600_state_common.c
View file @
c2b800cf
...
...
@@ -99,9 +99,6 @@ void r600_bind_rs_state(struct pipe_context *ctx, void *state)
if
(
state
==
NULL
)
return
;
rctx
->
clamp_vertex_color
=
rs
->
clamp_vertex_color
;
rctx
->
clamp_fragment_color
=
rs
->
clamp_fragment_color
;
rctx
->
sprite_coord_enable
=
rs
->
sprite_coord_enable
;
rctx
->
two_side
=
rs
->
two_side
;
...
...
@@ -588,12 +585,7 @@ static void r600_update_derived_state(struct r600_pipe_context *rctx)
r600_update_sampler_states
(
rctx
);
}
if
(
rctx
->
vs_shader
->
shader
.
clamp_color
!=
rctx
->
clamp_vertex_color
)
{
r600_shader_rebuild
(
&
rctx
->
context
,
rctx
->
vs_shader
);
}
if
((
rctx
->
ps_shader
->
shader
.
clamp_color
!=
rctx
->
clamp_fragment_color
)
||
(
rctx
->
ps_shader
->
shader
.
two_side
!=
rctx
->
two_side
)
||
if
((
rctx
->
ps_shader
->
shader
.
two_side
!=
rctx
->
two_side
)
||
((
rctx
->
chip_class
>=
EVERGREEN
)
&&
rctx
->
ps_shader
->
shader
.
fs_write_all
&&
(
rctx
->
ps_shader
->
shader
.
nr_cbufs
!=
rctx
->
nr_cbufs
)))
{
r600_shader_rebuild
(
&
rctx
->
context
,
rctx
->
ps_shader
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment