Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

viewport support initial draft #7

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

Aryetis
Copy link

@Aryetis Aryetis commented Jun 22, 2019

It probably needs way more testing as I'm still learning SDL2 (and implementing it at the same time because why not ...). But so far it looks like it's working fine
source code and Vita3K Image

Also I added runtime error behind a #define SDL_VITA_UNIMPLEMENTED_LOGS wall to more easily detect of unimplemented functions.

@rsn8887
Copy link
Owner

rsn8887 commented Jul 17, 2019

Thank you but I am afraid I don't understand enough about GXM viewports yet to merge this.

I don't like the factors of 2 in rendercopy and 1/2 in the viewport function. It seems hacky. Can you explain the factors of 2 and 1/2? Why are they necessary?

I have a strong suspicion the changes to VITA_RenderCopy() will break existing apps that don't call SetViewport explicitly.

I will have to test this more and look into it in more detail before I can merge this.

sergiou87 pushed a commit to sergiou87/SDL-Vita that referenced this pull request Jun 3, 2020
Make sure the thread is actually paused, and context backep-up, before
SurfaceView is destroyed (eg surfaceDestroyed() actually returns).

Add a timeout when surfaceDestroyed() is called, and check 'backup_done' variable.

It prevents crashes like:

  #00  pc 000000000000c0d0  /system/lib64/libutils.so (android::RefBase::incStrong(void const*) const+8)
  rsn8887#1  pc 000000000000c7f4  /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::UpdateBufferList(ANativeWindowBuffer*)+284)
  rsn8887#2  pc 000000000000c390  /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::DequeueBuffer()+240)
  rsn8887#3  pc 000000000000bb10  /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::GetBuffer(EglSubResource*, EglMemoryDesc*)+64)
  rsn8887#4  pc 000000000032732c  /vendor/lib64/egl/libGLESv2_adreno.so (EglWindowSurface::UpdateResource(EsxContext*)+116)
  rsn8887#5  pc 0000000000326dd0  /vendor/lib64/egl/libGLESv2_adreno.so (EglWindowSurface::GetResource(EsxContext*, EsxResource**, EsxResource**, int)+56)
  rsn8887#6  pc 00000000002ae484  /vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::AcquireBackBuffer(int)+364)
  rsn8887#7  pc 0000000000249680  /vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::Clear(unsigned int, unsigned int, unsigned int, EsxClearValues*)+1800)
  rsn8887#8  pc 00000000002cb52c  /vendor/lib64/egl/libGLESv2_adreno.so (EsxGlApiParamValidate::GlClear(EsxDispatch*, unsigned int)+132)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants