Skip to content
Snippets Groups Projects
Commit 45df3eb1 authored by Brian Paul's avatar Brian Paul
Browse files

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: default avatarJose Fonseca <jfonseca@vmware.com>
parent 37d699a2
No related branches found
No related tags found
No related merge requests found
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment