Description

From user:

"I believe the issue is deal to the implementation of FAndroidOpenGL, there is no overriding of FOpenGL::SupportsMapBuffer(),which always return from the base FOpenGLES2 method and it is always false. in OpenGLResources.h line 578, this can cause bCanUseMapBuffer always be false and not perform any mapping and reading in subsequent code. even if i override SupportsMapBuffer() and simply return true, there is still lacking of correct implementation for MapBufferRange under opengl es3 enviorment."

Steps to Reproduce

In the PostProcessEyeAdaptation.cpp of ue engine source code in function FSceneViewState::FEyeAdaptationRTManager::SwapRTs watch the value pointed to by ResultsBuffer after execution of RHICmdList.MapStagingSurface on android under opengles 3

 

(Modify PostProcessEyeAdaptation.cpp to insert a log after MapStagingSurface to output the value pointed to by ResultsBuffer, and check that value in the log on android using adb. Make sure you are running with opengl es3.x enabled, not opengles2.)

 

Result: 
The value is an undefined value something like -431602080
 
Expected: 
The value should be a correct meaningful value, which is readed back from a 1x1 rendertarget.

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-78510 in the post.

0
Login to Vote

Unresolved
ComponentPlatform - Mobile
Affects Versions4.22
Target Fix4.24
CreatedAug 7, 2019
UpdatedAug 13, 2019