projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8e559e0
)
util/blitter: allow NULL CSOs to be saved
author
Marek Olšák
<maraeo@gmail.com>
Wed, 23 Dec 2009 08:59:30 +0000
(09:59 +0100)
committer
Corbin Simpson
<MostAwesomeDude@gmail.com>
Wed, 6 Jan 2010 20:49:14 +0000
(12:49 -0800)
src/gallium/auxiliary/util/u_blitter.c
patch
|
blob
|
history
diff --git
a/src/gallium/auxiliary/util/u_blitter.c
b/src/gallium/auxiliary/util/u_blitter.c
index 1f794d39a17d4f975c8787d1494b65c97c7406f7..cef3b69e46ddf21e05d90658a9d096b4c7514c3e 100644
(file)
--- a/
src/gallium/auxiliary/util/u_blitter.c
+++ b/
src/gallium/auxiliary/util/u_blitter.c
@@
-48,6
+48,8
@@
#include "util/u_simple_shaders.h"
#include "util/u_texture.h"
#include "util/u_simple_shaders.h"
#include "util/u_texture.h"
+#define INVALID_PTR ((void*)~0)
+
struct blitter_context_priv
{
struct blitter_context blitter;
struct blitter_context_priv
{
struct blitter_context blitter;
@@
-110,6
+112,11
@@
struct blitter_context *util_blitter_create(struct pipe_context *pipe)
ctx->pipe = pipe;
/* init state objects for them to be considered invalid */
ctx->pipe = pipe;
/* init state objects for them to be considered invalid */
+ ctx->blitter.saved_blend_state = INVALID_PTR;
+ ctx->blitter.saved_dsa_state = INVALID_PTR;
+ ctx->blitter.saved_rs_state = INVALID_PTR;
+ ctx->blitter.saved_fs = INVALID_PTR;
+ ctx->blitter.saved_vs = INVALID_PTR;
ctx->blitter.saved_fb_state.nr_cbufs = ~0;
ctx->blitter.saved_num_textures = ~0;
ctx->blitter.saved_num_sampler_states = ~0;
ctx->blitter.saved_fb_state.nr_cbufs = ~0;
ctx->blitter.saved_num_textures = ~0;
ctx->blitter.saved_num_sampler_states = ~0;
@@
-234,11
+241,11
@@
void util_blitter_destroy(struct blitter_context *blitter)
static void blitter_check_saved_CSOs(struct blitter_context_priv *ctx)
{
/* make sure these CSOs have been saved */
static void blitter_check_saved_CSOs(struct blitter_context_priv *ctx)
{
/* make sure these CSOs have been saved */
- assert(ctx->blitter.saved_blend_state &&
- ctx->blitter.saved_dsa_state &&
- ctx->blitter.saved_rs_state &&
- ctx->blitter.saved_fs &&
- ctx->blitter.saved_vs);
+ assert(ctx->blitter.saved_blend_state
!= INVALID_PTR
&&
+ ctx->blitter.saved_dsa_state
!= INVALID_PTR
&&
+ ctx->blitter.saved_rs_state
!= INVALID_PTR
&&
+ ctx->blitter.saved_fs
!= INVALID_PTR
&&
+ ctx->blitter.saved_vs
!= INVALID_PTR
);
}
static void blitter_restore_CSOs(struct blitter_context_priv *ctx)
}
static void blitter_restore_CSOs(struct blitter_context_priv *ctx)
@@
-252,11
+259,11
@@
static void blitter_restore_CSOs(struct blitter_context_priv *ctx)
pipe->bind_fs_state(pipe, ctx->blitter.saved_fs);
pipe->bind_vs_state(pipe, ctx->blitter.saved_vs);
pipe->bind_fs_state(pipe, ctx->blitter.saved_fs);
pipe->bind_vs_state(pipe, ctx->blitter.saved_vs);
- ctx->blitter.saved_blend_state =
0
;
- ctx->blitter.saved_dsa_state =
0
;
- ctx->blitter.saved_rs_state =
0
;
- ctx->blitter.saved_fs =
0
;
- ctx->blitter.saved_vs =
0
;
+ ctx->blitter.saved_blend_state =
INVALID_PTR
;
+ ctx->blitter.saved_dsa_state =
INVALID_PTR
;
+ ctx->blitter.saved_rs_state =
INVALID_PTR
;
+ ctx->blitter.saved_fs =
INVALID_PTR
;
+ ctx->blitter.saved_vs =
INVALID_PTR
;
/* restore the state objects which are required to be saved before copy/fill
*/
/* restore the state objects which are required to be saved before copy/fill
*/