projects
/
mesa.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote branch 'origin/master' into nv50-compiler
[mesa.git]
/
src
/
mesa
/
drivers
/
dri
/
intel
/
intel_regions.h
diff --git
a/src/mesa/drivers/dri/intel/intel_regions.h
b/src/mesa/drivers/dri/intel/intel_regions.h
index 0d379bdc6e273c2483c3cb279fb668fbcefbfe6d..8464a5e937d205fdf6c077e0cadfee4e90bd9d68 100644
(file)
--- a/
src/mesa/drivers/dri/intel/intel_regions.h
+++ b/
src/mesa/drivers/dri/intel/intel_regions.h
@@
-30,8
+30,9
@@
/** @file intel_regions.h
*
/** @file intel_regions.h
*
- * Structure definitions and prototypes for intel_region handling, which is
- * the basic structure for rectangular collections of pixels stored in a dri_bo.
+ * Structure definitions and prototypes for intel_region handling,
+ * which is the basic structure for rectangular collections of pixels
+ * stored in a drm_intel_bo.
*/
#include <xf86drm.h>
*/
#include <xf86drm.h>
@@
-52,7
+53,7
@@
struct intel_buffer_object;
*/
struct intel_region
{
*/
struct intel_region
{
- dr
i
_bo *buffer; /**< buffer manager's buffer */
+ dr
m_intel
_bo *buffer; /**< buffer manager's buffer */
GLuint refcount; /**< Reference count for region */
GLuint cpp; /**< bytes per pixel */
GLuint width; /**< in pixels */
GLuint refcount; /**< Reference count for region */
GLuint cpp; /**< bytes per pixel */
GLuint width; /**< in pixels */
@@
-62,28
+63,34
@@
struct intel_region
GLuint map_refcount; /**< Reference count for mapping */
GLuint draw_offset; /**< Offset of drawing address within the region */
GLuint map_refcount; /**< Reference count for mapping */
GLuint draw_offset; /**< Offset of drawing address within the region */
+ GLuint draw_x, draw_y; /**< Offset of drawing within the region */
+
uint32_t tiling; /**< Which tiling mode the region is in */
uint32_t tiling; /**< Which tiling mode the region is in */
- uint32_t bit_6_swizzle; /**< GEM flag for address swizzling requirement */
- drmAddress classic_map; /**< drmMap of the region when not in GEM mode */
struct intel_buffer_object *pbo; /* zero-copy uploads */
struct intel_buffer_object *pbo; /* zero-copy uploads */
+
+ uint32_t name; /**< Global name for the bo */
+ struct intel_screen *screen;
};
/* Allocate a refcounted region. Pointers to regions should only be
* copied by calling intel_reference_region().
*/
};
/* Allocate a refcounted region. Pointers to regions should only be
* copied by calling intel_reference_region().
*/
-struct intel_region *intel_region_alloc(struct intel_
context *intel
,
+struct intel_region *intel_region_alloc(struct intel_
screen *screen
,
uint32_t tiling,
GLuint cpp, GLuint width,
uint32_t tiling,
GLuint cpp, GLuint width,
- GLuint height,
GLuint pitch,
+ GLuint height,
GLboolean expect_accelerated_upload);
struct intel_region *
GLboolean expect_accelerated_upload);
struct intel_region *
-intel_region_alloc_for_handle(struct intel_
context *intel
,
+intel_region_alloc_for_handle(struct intel_
screen *screen
,
GLuint cpp,
GLuint width, GLuint height, GLuint pitch,
unsigned int handle, const char *name);
GLuint cpp,
GLuint width, GLuint height, GLuint pitch,
unsigned int handle, const char *name);
+GLboolean
+intel_region_flink(struct intel_region *region, uint32_t *name);
+
void intel_region_reference(struct intel_region **dst,
struct intel_region *src);
void intel_region_reference(struct intel_region **dst,
struct intel_region *src);
@@
-118,6
+125,7
@@
intel_region_copy(struct intel_context *intel,
struct intel_region *src,
GLuint src_offset,
GLuint srcx, GLuint srcy, GLuint width, GLuint height,
struct intel_region *src,
GLuint src_offset,
GLuint srcx, GLuint srcy, GLuint width, GLuint height,
+ GLboolean flip,
GLenum logicop);
/* Helpers for zerocopy uploads, particularly texture image uploads:
GLenum logicop);
/* Helpers for zerocopy uploads, particularly texture image uploads:
@@
-130,9
+138,9
@@
void intel_region_release_pbo(struct intel_context *intel,
void intel_region_cow(struct intel_context *intel,
struct intel_region *region);
void intel_region_cow(struct intel_context *intel,
struct intel_region *region);
-dr
i
_bo *intel_region_buffer(struct intel_context *intel,
- struct intel_region *region,
- GLuint flag);
+dr
m_intel
_bo *intel_region_buffer(struct intel_context *intel,
+
struct intel_region *region,
+
GLuint flag);
void _mesa_copy_rect(GLubyte * dst,
GLuint cpp,
void _mesa_copy_rect(GLubyte * dst,
GLuint cpp,
@@
-144,4
+152,12
@@
void _mesa_copy_rect(GLubyte * dst,
const GLubyte * src,
GLuint src_pitch, GLuint src_x, GLuint src_y);
const GLubyte * src,
GLuint src_pitch, GLuint src_x, GLuint src_y);
+struct __DRIimageRec {
+ struct intel_region *region;
+ GLenum internal_format;
+ GLuint format;
+ GLenum data_type;
+ void *data;
+};
+
#endif
#endif