Fastest way to copy from memory to full screen every frame

Hello all, I’m porting my own 2d engine to use SDL for the final blit, input, sound, etc… I do many custom effects and functions in my own software engine, then wish to blit/copy my own buffer to the screen once per frame. I currently do this in my own engine on iOS and Android using a simple glTexSubImage2D call, it works very fast and I think it should be possible to use with SDL if I wanted to use raw opengl es calls still right? Before doing that though I was wondering what the best way to do it using SDL functions? From my research it seems like the following would work?

// do once
SDL_Texture *texture = SDL_CreateTexture(the_renderer, SDL_PIXELFORMAT_RGB565, SDL_TEXTUREACCESS_STREAMING, w, h);

// in the main loop
SDL_LockTexture(texture, NULL, &dest, &pitch);
SDL_ConvertPixels(w, h, SDL_PIXELFORMAT_RGB565, fp, w * 2, SDL_PIXELFORMAT_RGB565, dest, pitch);
SDL_UnlockTexture(texture);
SDL_RenderCopy(the_renderer, texture, NULL, NULL);

My current OpenGL way is to do glTexSubImage2D, then glDrawArrays to draw a full screen quad. Does SDL_ConvertPixels forward to a glTexSubImage2D type call, and SDL_RenderCopy forward to a glDrawArrays type call?