projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gallivm: Support 4 x unorm8 in lp_build_fetch_rgba_aos().
[mesa.git]
/
src
/
gallium
/
auxiliary
/
draw
/
draw_pt.c
diff --git
a/src/gallium/auxiliary/draw/draw_pt.c
b/src/gallium/auxiliary/draw/draw_pt.c
index b853f3a89f8d73e498e260c652c70de7e0175a6f..6234272d6ce98a334b716111b9535b3e56df4a0e 100644
(file)
--- a/
src/gallium/auxiliary/draw/draw_pt.c
+++ b/
src/gallium/auxiliary/draw/draw_pt.c
@@
-31,6
+31,7
@@
*/
#include "draw/draw_context.h"
*/
#include "draw/draw_context.h"
+#include "draw/draw_gs.h"
#include "draw/draw_private.h"
#include "draw/draw_pt.h"
#include "tgsi/tgsi_dump.h"
#include "draw/draw_private.h"
#include "draw/draw_pt.h"
#include "tgsi/tgsi_dump.h"
@@
-74,30
+75,34
@@
draw_pt_arrays(struct draw_context *draw,
{
unsigned first, incr;
draw_pt_split_prim(prim, &first, &incr);
{
unsigned first, incr;
draw_pt_split_prim(prim, &first, &incr);
- count = trim(count, first, incr);
+ count = trim(count, first, incr);
if (count < first)
return TRUE;
}
if (!draw->force_passthrough) {
if (count < first)
return TRUE;
}
if (!draw->force_passthrough) {
+ unsigned gs_out_prim = (draw->gs.geometry_shader ?
+ draw->gs.geometry_shader->output_primitive :
+ prim);
+
if (!draw->render) {
opt |= PT_PIPELINE;
}
if (!draw->render) {
opt |= PT_PIPELINE;
}
-
+
if (draw_need_pipeline(draw,
draw->rasterizer,
if (draw_need_pipeline(draw,
draw->rasterizer,
- prim)) {
+
gs_out_
prim)) {
opt |= PT_PIPELINE;
}
if (!draw->bypass_clipping && !draw->pt.test_fse) {
opt |= PT_CLIPTEST;
}
opt |= PT_PIPELINE;
}
if (!draw->bypass_clipping && !draw->pt.test_fse) {
opt |= PT_CLIPTEST;
}
-
+
opt |= PT_SHADE;
}
opt |= PT_SHADE;
}
-
- if (draw->pt.middle.llvm) {
+
+ if (draw->pt.middle.llvm
&& !draw->gs.geometry_shader
) {
middle = draw->pt.middle.llvm;
} else {
if (opt == 0)
middle = draw->pt.middle.llvm;
} else {
if (opt == 0)
@@
-119,7
+124,7
@@
draw_pt_arrays(struct draw_context *draw,
frontend->prepare( frontend, prim, middle, opt );
frontend->prepare( frontend, prim, middle, opt );
- frontend->run(frontend,
+ frontend->run(frontend,
draw_pt_elt_func(draw),
draw_pt_elt_ptr(draw, start),
draw->pt.user.eltBias,
draw_pt_elt_func(draw),
draw_pt_elt_ptr(draw, start),
draw->pt.user.eltBias,