2

すでに数十のデバイスでコンパイルされているが、1つまたは2つの特定のデバイスではコンパイルされていないシェーダーのコンパイルで、この厄介な問題が発生しています

以下を使用してフラグメントシェーダーをロードしようとしています:

 GLES20.glShaderSource(shader, source);

しかし、ログでクラッシュし続けます:

glCompileShader Fatal signal 11 (SIGSEGV) at 0x3412d01

GLSL バージョンではシェーダーのコンパイルに問題がある可能性があると思いましたが、そのバージョンを見ると、同じ GLSL バージョンの他のデバイスが正常にコンパイルされていることがわかりました。

OpenGL ドライバーの詳細のエラーは次のとおりです。

ZTE 4.0.4

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 
4

1 に答える 1

3

解決策は部分的です。シェーダーで、SIGDEV エラーでこのクラッシュを引き起こすいくつかの長いマクロを定義しました。彼らが私の記憶を壊し、アプリがおかしくなったと思います。

すべてのマクロを関数に変更し、バグを解決しました

于 2013-09-30T15:53:49.440 に答える