Imagination PowerVR SDK Blog

PVRVFrame: AEP shader compilation errors

pvrvframe

#1

To be honest PVRSDK 3.5 does not support GLES 3+ :]

Prerequisites:
Windows 7, GeForce 760Ti, latest NVidia driver, supported OpenGL version 4.5

Please explain:

  1. Obtained extension list:

(Info) PVRVFrame version 10.1
GL_APPLE_copy_texture_levels
GL_APPLE_sync
GL_APPLE_texture_max_level
GL_EXT_blend_minmax
GL_EXT_debug_marker
GL_EXT_discard_framebuffer
GL_EXT_multi_draw_arrays
GL_EXT_multisampled_render_to_texture
GL_EXT_read_format_bgra
GL_EXT_robustness
GL_EXT_sRGB
GL_EXT_texture_compression_dxt1
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_format_BGRA8888
GL_EXT_texture_rg
GL_EXT_texture_storage
GL_EXT_texture_sRGB_decode
GL_EXT_texture_type_2_10_10_10_REV
GL_IMG_multisampled_render_to_texture
GL_IMG_program_binary
GL_IMG_read_format
GL_IMG_shader_binary
GL_IMG_texture_compression_pvrtc
GL_IMG_texture_compression_pvrtc2
GL_IMG_texture_format_BGRA8888
GL_IMG_uniform_buffer_object
GL_IMG_vertex_array_object
GL_OES_compressed_ETC1_RGB8_texture
GL_OES_depth24
GL_OES_EGL_image
GL_OES_EGL_image_external
GL_OES_egl_sync
GL_OES_element_index_uint
GL_OES_mapbuffer
GL_OES_packed_depth_stencil
GL_OES_read_format
GL_OES_required_internalformat
GL_OES_rgb8_rgba8
GL_OES_stencil_wrap
GL_OES_stencil8
GL_OES_surfaceless_context
GL_OES_texture_3D
GL_OES_texture_mirrored_repeat
GL_OES_vertex_array_object
GL_EXT_color_buffer_half_float
GL_EXT_draw_buffers
GL_EXT_occlusion_query_boolean
GL_EXT_pvrtc_sRGB
GL_EXT_separate_shader_objects
GL_EXT_shader_texture_lod
GL_EXT_texture_border_clamp
GL_KHR_blend_equation_advanced
GL_KHR_debug
GL_IMG_texture_npot
GL_OES_depth_texture
GL_OES_depth_texture_cube_map
GL_OES_fragment_precision_high
GL_OES_get_program_binary
GL_OES_standard_derivatives
GL_OES_texture_float
GL_OES_texture_half_float
GL_OES_texture_stencil8
GL_OES_texture_storage_multisample_2d_array
GL_OES_vertex_half_float
GL_EXT_color_buffer_float
GL_EXT_copy_image
GL_OES_sample_shading
GL_OES_sample_variables
GL_OES_shader_image_atomic
GL_OES_shader_multisample_interpolation
GL_EXT_draw_buffers_indexed
GL_EXT_geometry_shader
GL_EXT_geometry_point_size
GL_EXT_gpu_shader5
GL_EXT_primitive_bounding_box
GL_EXT_shader_io_blocks
GL_EXT_tesselation_shader
GL_EXT_texture_buffer
GL_EXT_texture_cube_map_array

  1. with PVRFrame non geometry, non tesselation shaders cannot be compiled successfully.
    Compiler ouput is meaningless:
    [GEOMETRY] shader compilation failed [box.geom] :
    Compile failed.
    ERROR: 0:5: points: can only be used for geometry in/out interface.
    ERROR: 0:6: unsupported interface qualifier in this shader
    ERROR: 2 compilation errors. No code generated.

Shader code lines where the issue happened:
[i]
#version 310 es

precision highp float;

layout[points] in;
layout[triangle_strip, max_vertices = 14] out;

uniform mat4 u_mvpMatrix;
uniform mat4 u_normalMatrix;[/i]

3] The same sources works with MALI emulator ;]


#2

Hi Valentin,

Thanks for reporting the issue. I’ll discuss the problem with the PVRVFrame lead. If you can share a complete geometry shader and/or application binary that reproduce the issue, it will help us speed up our investigation. Confidential files can be shared with us by attaching them to tickets in our support portal: https://pvrsupport.imgtec.com/new-ticket

Cheers,
Joe