20# define _WIN32_WINNT 0x0600
40#define VKD3D_DEBUG_BUFFER_COUNT 64
41#define VKD3D_DEBUG_BUFFER_SIZE 512
57 static unsigned int level = ~0
u;
58 const char *vkd3d_debug;
127 static unsigned int buffer_index;
128 unsigned int current_index;
194 *
ptr++ = escape_char;
245 *
ptr++ = escape_char;
291 *
ptr++ = escape_char;
340 return default_value;
345 return c ==
',' ||
c ==
';' ||
c ==
'\0';
350 char prev_char, next_char;
358 prev_char =
p >
string ?
p[-1] : 0;
376 for (
i = 0;
i < option_count; ++
i)
397 if (!(pfn_SetThreadDescription = (
void *)
GetProcAddress(kernelbase,
"SetThreadDescription")))
413 if (!pfn_SetThreadDescription)
426#elif defined(HAVE_PTHREAD_SETNAME_NP_2)
427 pthread_setname_np(pthread_self(),
name);
428#elif defined(HAVE_PTHREAD_SETNAME_NP_1)
429 pthread_setname_np(
name);
#define GetProcAddress(x, y)
#define MultiByteToWideChar
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
BOOL WINAPI InitOnceExecuteOnce(_Inout_ PINIT_ONCE InitOnce, _In_ __callback PINIT_ONCE_FN InitFn, _Inout_opt_ PVOID Parameter, _Outptr_opt_result_maybenull_ LPVOID *Context)
char *CDECL getenv(const char *name)
int CDECL vfprintf(FILE *file, const char *format, va_list valist)
_ACRTIMP __msvcrt_ulong __cdecl strtoul(const char *, char **, int)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP char *__cdecl strstr(const char *, const char *)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
GLdouble GLdouble GLdouble r
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
static IPrintDialogCallback callback
static const char *const debug_level_names[]
#define VKD3D_DEBUG_BUFFER_SIZE
#define VKD3D_DEBUG_BUFFER_COUNT
enum vkd3d_dbg_level vkd3d_dbg_get_level(void)
static char * get_buffer(void)
static bool is_option_separator(char c)
void vkd3d_set_thread_name(const char *name)
uint64_t vkd3d_parse_debug_options(const char *string, const struct vkd3d_debug_option *options, unsigned int option_count)
static int get_escape_char(int c)
static void vkd3d_dbg_output(const char *fmt,...)
static const char * debugstr_w32(const uint32_t *wstr)
static void vkd3d_dbg_voutput(const char *fmt, va_list args)
const char *const vkd3d_dbg_env_name
const char * vkd3d_dbg_vsprintf(const char *fmt, va_list args)
const char * debugstr_an(const char *str, size_t n)
bool vkd3d_debug_list_has_member(const char *string, const char *member)
const char * vkd3d_dbg_sprintf(const char *fmt,...)
void vkd3d_dbg_printf(enum vkd3d_dbg_level level, const char *function, const char *fmt,...)
void vkd3d_dbg_set_log_callback(PFN_vkd3d_log callback)
unsigned int vkd3d_env_var_as_uint(const char *name, unsigned int default_value)
static PFN_vkd3d_log log_callback
static const char * debugstr_w16(const uint16_t *wstr)
static INIT_ONCE init_once
@ VKD3D_DBG_LEVEL_MESSAGE
static uint32_t vkd3d_atomic_increment_u32(uint32_t volatile *x)
static void vkd3d_free(void *ptr)
static void * vkd3d_malloc(size_t size)
void(* PFN_vkd3d_log)(const char *format, va_list args)
HANDLE WINAPI GetCurrentThread(void)
DWORD WINAPI GetCurrentThreadId(void)
#define INIT_ONCE_STATIC_INIT