llvmpipe: fix the LP_NO_RAST debug option
It was only no-oping the clear() function, not actual triangle rasterization. Move the no_rast field from lp_context down into lp_rasterizer so it's accessible where it's needed. Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
@@ -53,9 +53,6 @@ llvmpipe_clear(struct pipe_context *pipe,
|
||||
{
|
||||
struct llvmpipe_context *llvmpipe = llvmpipe_context(pipe);
|
||||
|
||||
if (llvmpipe->no_rast)
|
||||
return;
|
||||
|
||||
if (!llvmpipe_check_render_cond(llvmpipe))
|
||||
return;
|
||||
|
||||
|
||||
@@ -47,9 +47,6 @@
|
||||
#include "lp_setup.h"
|
||||
|
||||
|
||||
DEBUG_GET_ONCE_BOOL_OPTION(lp_no_rast, "LP_NO_RAST", FALSE)
|
||||
|
||||
|
||||
/** shared by all contexts */
|
||||
unsigned llvmpipe_variant_count;
|
||||
|
||||
@@ -207,9 +204,6 @@ llvmpipe_create_context( struct pipe_screen *screen, void *priv )
|
||||
|
||||
/* FIXME: devise alternative to draw_texture_samplers */
|
||||
|
||||
if (debug_get_option_lp_no_rast())
|
||||
llvmpipe->no_rast = TRUE;
|
||||
|
||||
llvmpipe->setup = lp_setup_create( &llvmpipe->pipe,
|
||||
llvmpipe->draw );
|
||||
if (!llvmpipe->setup)
|
||||
|
||||
@@ -701,28 +701,32 @@ rasterize_scene(struct lp_rasterizer_task *task,
|
||||
struct lp_scene *scene)
|
||||
{
|
||||
task->scene = scene;
|
||||
/* loop over scene bins, rasterize each */
|
||||
|
||||
if (!task->rast->no_rast) {
|
||||
/* loop over scene bins, rasterize each */
|
||||
#if 0
|
||||
{
|
||||
unsigned i, j;
|
||||
for (i = 0; i < scene->tiles_x; i++) {
|
||||
for (j = 0; j < scene->tiles_y; j++) {
|
||||
struct cmd_bin *bin = lp_scene_get_bin(scene, i, j);
|
||||
rasterize_bin(task, bin, i, j);
|
||||
{
|
||||
unsigned i, j;
|
||||
for (i = 0; i < scene->tiles_x; i++) {
|
||||
for (j = 0; j < scene->tiles_y; j++) {
|
||||
struct cmd_bin *bin = lp_scene_get_bin(scene, i, j);
|
||||
rasterize_bin(task, bin, i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
{
|
||||
struct cmd_bin *bin;
|
||||
{
|
||||
struct cmd_bin *bin;
|
||||
|
||||
assert(scene);
|
||||
while ((bin = lp_scene_bin_iter_next(scene))) {
|
||||
if (!is_empty_bin( bin ))
|
||||
rasterize_bin(task, bin);
|
||||
assert(scene);
|
||||
while ((bin = lp_scene_bin_iter_next(scene))) {
|
||||
if (!is_empty_bin( bin ))
|
||||
rasterize_bin(task, bin);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
if (scene->fence) {
|
||||
lp_fence_signal(scene->fence);
|
||||
@@ -896,6 +900,8 @@ lp_rast_create( unsigned num_threads )
|
||||
|
||||
rast->num_threads = num_threads;
|
||||
|
||||
rast->no_rast = debug_get_bool_option("LP_NO_RAST", FALSE);
|
||||
|
||||
create_rast_threads(rast);
|
||||
|
||||
/* for synchronizing rasterization threads */
|
||||
|
||||
@@ -111,6 +111,7 @@ struct lp_rasterizer_task
|
||||
struct lp_rasterizer
|
||||
{
|
||||
boolean exit_flag;
|
||||
boolean no_rast; /**< For debugging/profiling */
|
||||
|
||||
/** The incoming queue of scenes ready to rasterize */
|
||||
struct lp_scene_queue *full_scenes;
|
||||
|
||||
Reference in New Issue
Block a user