gallium/swr: Make flat shading tris work.
- Incorporate flatshade flag into the shader generation - Use provoking vertex (vc) in shader when flat shading. Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
c53a12fedc
commit
f69a61b1aa
|
@ -102,6 +102,7 @@ swr_generate_fs_key(struct swr_jit_fs_key &key,
|
|||
|
||||
key.nr_cbufs = ctx->framebuffer.nr_cbufs;
|
||||
key.light_twoside = ctx->rasterizer->light_twoside;
|
||||
key.flatshade = ctx->rasterizer->flatshade;
|
||||
memcpy(&key.vs_output_semantic_name,
|
||||
&ctx->vs->info.base.output_semantic_name,
|
||||
sizeof(key.vs_output_semantic_name));
|
||||
|
@ -491,6 +492,9 @@ BuilderSWR::CompileFS(struct swr_context *ctx, swr_jit_fs_key &key)
|
|||
|
||||
if (interpMode == TGSI_INTERPOLATE_CONSTANT) {
|
||||
inputs[attrib][channel] = wrap(va);
|
||||
} else if ((interpMode == TGSI_INTERPOLATE_COLOR) &&
|
||||
(key.flatshade == true)) {
|
||||
inputs[attrib][channel] = wrap(vc);
|
||||
} else {
|
||||
Value *vk = FSUB(FSUB(VIMMED1(1.0f), vi), vj);
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ struct swr_jit_sampler_key {
|
|||
struct swr_jit_fs_key : swr_jit_sampler_key {
|
||||
unsigned nr_cbufs;
|
||||
unsigned light_twoside;
|
||||
unsigned flatshade;
|
||||
ubyte vs_output_semantic_name[PIPE_MAX_SHADER_OUTPUTS];
|
||||
ubyte vs_output_semantic_idx[PIPE_MAX_SHADER_OUTPUTS];
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue