2ff4100849
This is the first patch to implement a fbo/tex pool mechanism which is like the sna's BO cache list. We firstly need to decopule the fbo/tex from each pixmap. The new glamor_pixmap_fbo data structure is for that purpose. It's somehow independent to each pixmap and can be reused latter by other pixmaps once it's detached from the current pixmap. And this commit also slightly change the way to create a memory pixmap. We will not create a pixmap private data structure by default, instead we will crete that structure when a memory pixmap is attaching a fbo to it. Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
87 lines
2.5 KiB
C
87 lines
2.5 KiB
C
#ifndef __GLAMOR_DEBUG_H__
|
|
#define __GLAMOR_DEBUG_H__
|
|
|
|
|
|
#define GLAMOR_DELAYED_STRING_MAX 64
|
|
|
|
#define GLAMOR_DEBUG_NONE 0
|
|
#define GLAMOR_DEBUG_UNIMPL 0
|
|
#define GLAMOR_DEBUG_FALLBACK 1
|
|
#define GLAMOR_DEBUG_TEXTURE_DOWNLOAD 2
|
|
#define GLAMOR_DEBUG_TEXTURE_DYNAMIC_UPLOAD 3
|
|
|
|
extern void
|
|
AbortServer(void)
|
|
_X_NORETURN;
|
|
|
|
#define GLAMOR_PANIC(_format_, ...) \
|
|
do { \
|
|
LogMessageVerb(X_NONE, 0, "Glamor Fatal Error" \
|
|
" at %32s line %d: " _format_ "\n", \
|
|
__FUNCTION__, __LINE__, \
|
|
##__VA_ARGS__ ); \
|
|
exit(1); \
|
|
} while(0)
|
|
|
|
|
|
|
|
|
|
#define __debug_output_message(_format_, _prefix_, ...) \
|
|
LogMessageVerb(X_NONE, 0, \
|
|
"%32s:\t" _format_ , \
|
|
/*_prefix_,*/ \
|
|
__FUNCTION__, \
|
|
##__VA_ARGS__)
|
|
|
|
#define glamor_debug_output(_level_, _format_,...) \
|
|
do { \
|
|
if (glamor_debug_level >= _level_) \
|
|
__debug_output_message(_format_, \
|
|
"Glamor debug", \
|
|
##__VA_ARGS__); \
|
|
} while(0)
|
|
|
|
|
|
#define glamor_fallback(_format_,...) \
|
|
do { \
|
|
if (glamor_debug_level >= GLAMOR_DEBUG_FALLBACK) \
|
|
__debug_output_message(_format_, \
|
|
"Glamor fallback", \
|
|
##__VA_ARGS__);} while(0)
|
|
|
|
|
|
|
|
#define glamor_delayed_fallback(_screen_, _format_,...) \
|
|
do { \
|
|
if (glamor_debug_level >= GLAMOR_DEBUG_FALLBACK) { \
|
|
glamor_screen_private *_glamor_priv_; \
|
|
_glamor_priv_ = glamor_get_screen_private(_screen_); \
|
|
_glamor_priv_->delayed_fallback_pending = 1; \
|
|
snprintf(_glamor_priv_->delayed_fallback_string, \
|
|
GLAMOR_DELAYED_STRING_MAX, \
|
|
"glamor delayed fallback: \t%s " _format_ , \
|
|
__FUNCTION__, ##__VA_ARGS__); } } while(0)
|
|
|
|
|
|
#define glamor_clear_delayed_fallbacks(_screen_) \
|
|
do { \
|
|
if (glamor_debug_level >= GLAMOR_DEBUG_FALLBACK) { \
|
|
glamor_screen_private *_glamor_priv_; \
|
|
_glamor_priv_ = glamor_get_screen_private(_screen_); \
|
|
_glamor_priv_->delayed_fallback_pending = 0; } } while(0)
|
|
|
|
#define glamor_report_delayed_fallbacks(_screen_) \
|
|
do { \
|
|
if (glamor_debug_level >= GLAMOR_DEBUG_FALLBACK) { \
|
|
glamor_screen_private *_glamor_priv_; \
|
|
_glamor_priv_ = glamor_get_screen_private(_screen_); \
|
|
LogMessageVerb(X_INFO, 0, "%s", \
|
|
_glamor_priv_->delayed_fallback_string); \
|
|
_glamor_priv_->delayed_fallback_pending = 0; } } while(0)
|
|
|
|
#define DEBUGF(str, ...)
|
|
//#define DEBUGF(str, ...) ErrorF(str, ##__VA_ARGS__)
|
|
|
|
|
|
#endif
|