Mesa (gallium-0.1): pipebuffer: is_texture/buffer_referenced helper.
Jose Fonseca
jrfonseca at kemper.freedesktop.org
Thu Oct 15 12:06:33 UTC 2009
Module: Mesa
Branch: gallium-0.1
Commit: a1276bfdd8ea2c2840f3ea8edd3cea8720804498
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a1276bfdd8ea2c2840f3ea8edd3cea8720804498
Author: José Fonseca <jfonseca at vmware.com>
Date: Tue Oct 13 13:47:51 2009 +0100
pipebuffer: is_texture/buffer_referenced helper.
A hash table would be more efficient, but this likely isn't used often
enough to make a difference.
---
src/gallium/auxiliary/pipebuffer/pb_validate.c | 14 ++++++++++++++
src/gallium/auxiliary/pipebuffer/pb_validate.h | 8 ++++++++
2 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/src/gallium/auxiliary/pipebuffer/pb_validate.c b/src/gallium/auxiliary/pipebuffer/pb_validate.c
index 1e54fc3..1c7b919 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_validate.c
+++ b/src/gallium/auxiliary/pipebuffer/pb_validate.c
@@ -99,6 +99,20 @@ pb_validate_add_buffer(struct pb_validate *vl,
}
+unsigned
+pb_validate_is_buffer_referenced(struct pb_validate *vl,
+ struct pb_buffer *buf)
+{
+ unsigned i;
+
+ for(i = 0; i < vl->used; ++i)
+ if(vl->buffers[i] == buf)
+ return PIPE_REFERENCED_FOR_READ | PIPE_REFERENCED_FOR_WRITE;
+
+ return 0;
+}
+
+
enum pipe_error
pb_validate_validate(struct pb_validate *vl)
{
diff --git a/src/gallium/auxiliary/pipebuffer/pb_validate.h b/src/gallium/auxiliary/pipebuffer/pb_validate.h
index 3db1d53..1da7b1a 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_validate.h
+++ b/src/gallium/auxiliary/pipebuffer/pb_validate.h
@@ -61,6 +61,14 @@ pb_validate_add_buffer(struct pb_validate *vl,
struct pb_buffer *buf);
/**
+ * Helper for pipe_context::is_texture_referenced and
+ * pipe_context::is_buffer_referenced
+ */
+unsigned
+pb_validate_is_buffer_referenced(struct pb_validate *vl,
+ struct pb_buffer *buf);
+
+/**
* Validate all buffers for hardware access.
*
* Should be called right before issuing commands to the hardware.
More information about the mesa-commit
mailing list