misc(debug): more debug shiz

This commit is contained in:
Swung0x48 2025-02-25 13:31:11 +08:00
parent 9187e51ad5
commit de265cb84a
4 changed files with 137 additions and 30 deletions

View File

@ -60,23 +60,25 @@ void* glMapBuffer(GLenum target, GLenum access) {
mapping.target = target;
mapping.buffer_id = (GLuint)current_buffer;
mapping.mapped_ptr = ptr;
//#if GLOBAL_DEBUG || DEBUG
// if (target == GL_PIXEL_UNPACK_BUFFER)
// mapping.client_buf.resize(buffer_size, 0xFF);
//#endif
#if GLOBAL_DEBUG || DEBUG
if (target == GL_PIXEL_UNPACK_BUFFER) {
mapping.client_ptr = malloc(buffer_size);
memset(mapping.client_ptr, 0xFF, buffer_size);
}
#endif
mapping.size = buffer_size;
mapping.flags = flags;
mapping.is_dirty = (flags & GL_MAP_WRITE_BIT) ? GL_TRUE : GL_FALSE;
g_active_mappings[current_buffer] = mapping;
CHECK_GL_ERROR
//#if GLOBAL_DEBUG || DEBUG
// if (target == GL_PIXEL_UNPACK_BUFFER)
// return mapping.client_buf.data();
// else
// return ptr;
//#else
#if GLOBAL_DEBUG || DEBUG
if (target == GL_PIXEL_UNPACK_BUFFER)
return mapping.client_ptr;
else
return ptr;
#else
return ptr;
//#endif
#endif
}
GLboolean force_unmap() {
@ -117,17 +119,19 @@ GLboolean glUnmapBuffer(GLenum target) {
return GL_FALSE;
#if GLOBAL_DEBUG || DEBUG
// Blit data from client side to OpenGL here
// if (target == GL_PIXEL_UNPACK_BUFFER) {
// auto &mapping = g_active_mappings[buffer];
//
// std::fstream fs(std::string(BIN_FILE_PREFIX) + "buf" + std::to_string(buffer) + ".bin", std::ios::out | std::ios::binary | std::ios::trunc);
// fs.write((const char*)mapping.client_buf.data(), mapping.size);
// fs.close();
//
//// memset(mapping.mapped_ptr, 0xFF, mapping.size);
// memcpy(mapping.mapped_ptr, mapping.client_buf.data(), mapping.size);
// }
// Blit data from client side to OpenGL here
if (target == GL_PIXEL_UNPACK_BUFFER) {
auto &mapping = g_active_mappings[buffer];
std::fstream fs(std::string(BIN_FILE_PREFIX) + "buf" + std::to_string(buffer) + ".bin", std::ios::out | std::ios::binary | std::ios::trunc);
fs.write((const char*)mapping.client_ptr, mapping.size);
fs.close();
// memset(mapping.mapped_ptr, 0xFF, mapping.size);
memcpy(mapping.mapped_ptr, mapping.client_ptr, mapping.size);
free(mapping.client_ptr);
mapping.client_ptr = NULL;
}
#endif
LOAD_GLES(glUnmapBuffer, GLboolean, GLenum target);

View File

@ -18,7 +18,7 @@ typedef struct {
GLuint buffer_id;
void *mapped_ptr;
#if GLOBAL_DEBUG || DEBUG
std::vector<uint8_t> client_buf;
void *client_ptr;
#endif
GLsizeiptr size;
GLbitfield flags;

View File

@ -18,4 +18,5 @@ GLAPI GLAPIENTRY void glClearDepth(GLclampd depth) {
void glHint(GLenum target, GLenum mode) {
LOG();
LOG_D("glHint, target = %s, mode = %s", glEnumToString(target), glEnumToString(mode))
}

View File

@ -611,7 +611,6 @@ const char* glEnumToString(GLenum e) {
CASE(GL_DYNAMIC_DRAW)
CASE(GL_DYNAMIC_READ)
CASE(GL_DYNAMIC_COPY)
CASE(GL_SRC1_ALPHA)
CASE(GL_VERTEX_ARRAY_BUFFER_BINDING)
CASE(GL_NORMAL_ARRAY_BUFFER_BINDING)
CASE(GL_COLOR_ARRAY_BUFFER_BINDING)
@ -962,12 +961,6 @@ const char* glEnumToString(GLenum e) {
CASE(GL_TEXTURE_IMMUTABLE_LEVELS)
CASE(GL_TEXTURE_RECTANGLE)
CASE(GL_TEXTURE_CUBE_MAP_POSITIVE_X)
CASE(GL_TEXTURE_CUBE_MAP_NEGATIVE_X)
CASE(GL_TEXTURE_CUBE_MAP_POSITIVE_Y)
CASE(GL_TEXTURE_CUBE_MAP_NEGATIVE_Y)
CASE(GL_TEXTURE_CUBE_MAP_POSITIVE_Z)
CASE(GL_TEXTURE_CUBE_MAP_NEGATIVE_Z)
CASE(GL_TEXTURE_CUBE_MAP_ARRAY)
CASE(GL_BGR)
@ -976,6 +969,115 @@ const char* glEnumToString(GLenum e) {
CASE(GL_BLUE_INTEGER)
CASE(GL_BGR_INTEGER)
CASE(GL_BGRA_INTEGER)
/*
* OpenGL 1.3
*/
/* multitexture */
CASE(GL_TEXTURE0)
CASE(GL_TEXTURE1)
CASE(GL_TEXTURE2)
CASE(GL_TEXTURE3)
CASE(GL_TEXTURE4)
CASE(GL_TEXTURE5)
CASE(GL_TEXTURE6)
CASE(GL_TEXTURE7)
CASE(GL_TEXTURE8)
CASE(GL_TEXTURE9)
CASE(GL_TEXTURE10)
CASE(GL_TEXTURE11)
CASE(GL_TEXTURE12)
CASE(GL_TEXTURE13)
CASE(GL_TEXTURE14)
CASE(GL_TEXTURE15)
CASE(GL_TEXTURE16)
CASE(GL_TEXTURE17)
CASE(GL_TEXTURE18)
CASE(GL_TEXTURE19)
CASE(GL_TEXTURE20)
CASE(GL_TEXTURE21)
CASE(GL_TEXTURE22)
CASE(GL_TEXTURE23)
CASE(GL_TEXTURE24)
CASE(GL_TEXTURE25)
CASE(GL_TEXTURE26)
CASE(GL_TEXTURE27)
CASE(GL_TEXTURE28)
CASE(GL_TEXTURE29)
CASE(GL_TEXTURE30)
CASE(GL_TEXTURE31)
CASE(GL_ACTIVE_TEXTURE)
CASE(GL_CLIENT_ACTIVE_TEXTURE)
CASE(GL_MAX_TEXTURE_UNITS)
/* texture_cube_map */
CASE(GL_NORMAL_MAP)
CASE(GL_REFLECTION_MAP)
CASE(GL_TEXTURE_CUBE_MAP)
CASE(GL_TEXTURE_BINDING_CUBE_MAP)
CASE(GL_TEXTURE_CUBE_MAP_POSITIVE_X)
CASE(GL_TEXTURE_CUBE_MAP_NEGATIVE_X)
CASE(GL_TEXTURE_CUBE_MAP_POSITIVE_Y)
CASE(GL_TEXTURE_CUBE_MAP_NEGATIVE_Y)
CASE(GL_TEXTURE_CUBE_MAP_POSITIVE_Z)
CASE(GL_TEXTURE_CUBE_MAP_NEGATIVE_Z)
CASE(GL_PROXY_TEXTURE_CUBE_MAP)
CASE(GL_MAX_CUBE_MAP_TEXTURE_SIZE)
/* texture_compression */
CASE(GL_COMPRESSED_ALPHA)
CASE(GL_COMPRESSED_LUMINANCE)
CASE(GL_COMPRESSED_LUMINANCE_ALPHA)
CASE(GL_COMPRESSED_INTENSITY)
CASE(GL_COMPRESSED_RGB)
CASE(GL_COMPRESSED_RGBA)
CASE(GL_TEXTURE_COMPRESSION_HINT)
CASE(GL_TEXTURE_COMPRESSED_IMAGE_SIZE)
CASE(GL_TEXTURE_COMPRESSED)
CASE(GL_NUM_COMPRESSED_TEXTURE_FORMATS)
CASE(GL_COMPRESSED_TEXTURE_FORMATS)
/* multisample */
CASE(GL_MULTISAMPLE)
CASE(GL_SAMPLE_ALPHA_TO_COVERAGE)
CASE(GL_SAMPLE_ALPHA_TO_ONE)
CASE(GL_SAMPLE_COVERAGE)
CASE(GL_SAMPLE_BUFFERS)
CASE(GL_SAMPLES)
CASE(GL_SAMPLE_COVERAGE_VALUE)
CASE(GL_SAMPLE_COVERAGE_INVERT)
CASE(GL_MULTISAMPLE_BIT)
/* transpose_matrix */
CASE(GL_TRANSPOSE_MODELVIEW_MATRIX)
CASE(GL_TRANSPOSE_PROJECTION_MATRIX)
CASE(GL_TRANSPOSE_TEXTURE_MATRIX)
CASE(GL_TRANSPOSE_COLOR_MATRIX)
/* texture_env_combine */
CASE(GL_COMBINE)
CASE(GL_COMBINE_RGB)
CASE(GL_COMBINE_ALPHA)
CASE(GL_SOURCE0_RGB)
CASE(GL_SOURCE1_RGB)
CASE(GL_SOURCE2_RGB)
CASE(GL_SOURCE0_ALPHA)
CASE(GL_SOURCE1_ALPHA)
CASE(GL_SOURCE2_ALPHA)
CASE(GL_OPERAND0_RGB)
CASE(GL_OPERAND1_RGB)
CASE(GL_OPERAND2_RGB)
CASE(GL_OPERAND0_ALPHA)
CASE(GL_OPERAND1_ALPHA)
CASE(GL_OPERAND2_ALPHA)
CASE(GL_RGB_SCALE)
CASE(GL_ADD_SIGNED)
CASE(GL_INTERPOLATE)
CASE(GL_SUBTRACT)
CASE(GL_CONSTANT)
CASE(GL_PRIMARY_COLOR)
CASE(GL_PREVIOUS)
/* texture_env_dot3 */
CASE(GL_DOT3_RGB)
CASE(GL_DOT3_RGBA)
/* texture_border_clamp */
CASE(GL_CLAMP_TO_BORDER)
/*
* Miscellaneous
*/