projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '7.8'
[mesa.git]
/
src
/
gallium
/
drivers
/
softpipe
/
sp_texture.h
diff --git
a/src/gallium/drivers/softpipe/sp_texture.h
b/src/gallium/drivers/softpipe/sp_texture.h
index b1b6130b22c9ea2ca8e4c34e10aacab2a4562ff7..c0e6ba8a869ff34c95474934dadc602e4b1dc63e 100644
(file)
--- a/
src/gallium/drivers/softpipe/sp_texture.h
+++ b/
src/gallium/drivers/softpipe/sp_texture.h
@@
-30,6
+30,11
@@
#include "pipe/p_state.h"
#include "pipe/p_state.h"
+#include "pipe/p_video_state.h"
+
+
+#define SP_MAX_TEXTURE_2D_LEVELS 13 /* 4K x 4K */
+#define SP_MAX_TEXTURE_3D_LEVELS 9 /* 512 x 512 x 512 */
struct pipe_context;
struct pipe_context;
@@
-41,14
+46,25
@@
struct softpipe_texture
{
struct pipe_texture base;
{
struct pipe_texture base;
- unsigned long level_offset[
PIPE_MAX_TEXTURE
_LEVELS];
- unsigned stride[
PIPE_MAX_TEXTURE
_LEVELS];
+ unsigned long level_offset[
SP_MAX_TEXTURE_2D
_LEVELS];
+ unsigned stride[
SP_MAX_TEXTURE_2D
_LEVELS];
- /* The data is held here:
+ /**
+ * Display target, for textures with the PIPE_TEXTURE_USAGE_DISPLAY_TARGET
+ * usage.
+ */
+ struct sw_displaytarget *dt;
+
+ /**
+ * Malloc'ed data for regular textures, or a mapping to dt above.
*/
*/
-
struct pipe_buffer *buffer
;
+
void *data
;
- boolean modified;
+ /* True if texture images are power-of-two in all dimensions:
+ */
+ boolean pot;
+
+ unsigned timestamp;
};
struct softpipe_transfer
};
struct softpipe_transfer
@@
-58,6
+74,15
@@
struct softpipe_transfer
unsigned long offset;
};
unsigned long offset;
};
+struct softpipe_video_surface
+{
+ struct pipe_video_surface base;
+
+ /* The data is held here:
+ */
+ struct pipe_texture *tex;
+};
+
/** cast wrappers */
static INLINE struct softpipe_texture *
/** cast wrappers */
static INLINE struct softpipe_texture *
@@
-72,9
+97,18
@@
softpipe_transfer(struct pipe_transfer *pt)
return (struct softpipe_transfer *) pt;
}
return (struct softpipe_transfer *) pt;
}
+static INLINE struct softpipe_video_surface *
+softpipe_video_surface(struct pipe_video_surface *pvs)
+{
+ return (struct softpipe_video_surface *) pvs;
+}
+
extern void
softpipe_init_screen_texture_funcs(struct pipe_screen *screen);
extern void
softpipe_init_screen_texture_funcs(struct pipe_screen *screen);
+void
+softpipe_init_texture_funcs(struct pipe_context *pipe);
+
#endif /* SP_TEXTURE */
#endif /* SP_TEXTURE */