我在编译着色器时遇到了这个令人讨厌的问题,该着色器已经在数十台设备上编译但在1或2上没有编译
我正在尝试使用以下方法加载片段着色器:
GLES20.glShaderSource(shader, source);
但是我一直在跟日志崩溃:
glCompileShader Fatal signal 11 (SIGSEGV) at 0x3412d01
我认为GLSL版本可能在编译着色器时遇到问题,但从查看其版本时我看到其他具有相同GLSL版本的设备已成功编译它。
OpenGL驱动程序详细信息中的错误是:
GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 1.00
GL_VENDOR: Qualcomm
GL_RENDERER: Adreno (TM) 200
GL_EXTENSIONS:
GL_AMD_compressed_ATC_texture
GL_AMD_performance_monitor
GL_AMD_program_binary_Z400
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_format_BGRA8888
GL_EXT_texture_type_2_10_10_10_REV
GL_NV_fence GL_OES_compressed_ETC1_RGB8_texture
GL_OES_depth_texture
GL_OES_depth24
GL_OES_EGL_image GL_OES_EGL_image_external
GL_OES_element_index_uint
GL_OES_fbo_render_mipmap
GL_OES_fragment_precision_high
GL_OES_get_program_binary
GL_OES_packed_depth_stencil
GL_OES_rgb8_rgba8 GL_OES_standard_derivatives
GL_OES_texture_3D GL_OES_texture_float
GL_OES_texture_half_float
GL_OES_texture_half_float_linear
GL_OES_texture_npot
GL_OES_vertex_half_float
GL_OES_vertex_type_10_10_10_2 GL_OES_vertex_array_object
GL_QCOM_alpha_test
GL_QCOM_binning_control
GL_QCOM_driver_control
GL_QCOM_perfmon_global_mode
GL_QCOM_extended_get
GL_QCOM_extended_get2
GL_QCOM_tiled_rendering
GL_QCOM_writeonly_rendering
GL_AMD_compressed_3DC_texture
答案 0 :(得分:3)
解决方案是部分的。在着色器中,我定义了一些导致此崩溃的长宏,并出现SIGDEV错误。我认为他们破坏了我的记忆,应用程序变得疯狂。
我将所有宏更改为函数并解决了错误