Author Topic: Godot Game Engine on GCW0?  (Read 4204 times)

zapateo (OP)

  • Posts: 3
Godot Game Engine on GCW0?
« on: February 21, 2015, 04:07:58 pm »
Hi everyone,
what about http://www.godotengine.org/wp/ Godot Game Engine exporting for GCW0?
Wikipedia says it can export to many platforms:
http://en.wikipedia.org/wiki/Godot_%28game_engine%29
Quote
Godot supports deployment to multiple platforms. Within a project, developers have control over delivery to mobiles, web, desktops, and consoles. Godot also allows specification of texture compression and resolution settings for each platform the game supports.

Currently supported platforms include Windows, OS X, Linux, Android, iOS, BlackBerry 10, HTML5, flash, NaCl, PlayStation 3, PlayStation Vita and 3DS.

There is an upcoming support for Windows Phone 8.
I tried to search on Google but I found nothing  :(

PS. Sorry for my bad english  :'(
Sorry for my bad english :/

fosamax

  • Posts: 327
Re: Godot Game Engine on GCW0?
« Reply #1 on: February 22, 2015, 07:56:24 am »
Looking at the link to wikipedia, the engine is openGLES2.0 compliant so it may be portable to the zero but I don't see any referenceof the minimum hardware requirements.
Given the fact a 3DS export is available, you could expect the zero to be able to handle it.

Nice find anyway.

zapateo (OP)

  • Posts: 3
Re: Godot Game Engine on GCW0?
« Reply #2 on: February 22, 2015, 09:21:19 am »
Perfect  ;)
Sorry for my bad english :/

Shin-NiL

  • Posts: 355
    • Shin-NiL's Personal Web Page (Brazilian Portuguese)
Re: Godot Game Engine on GCW0?
« Reply #3 on: March 19, 2015, 12:19:54 pm »
This is as far as I can get using SDL2 to create an OpenGLES context:

Code: [Select]
    ./godot.gcw0.debug
    let it go!
    opening pack /media/data/apps/godot/godotProjects/godot.gcw0.debug, -1, -1
    opening pack /media/data/apps/godot/godotProjects/data.pck, -1, -1
    Init OS
    fbdev_display succesful
    Kernel: Vivante GPL kernel driver 4.6.6.1381
    Physical address of internal memory: 00000000
    * Video memory:
      Internal physical: 0x00000000
      Internal size: 0x00000000
      External physical: 00000000
      External size: 0x00000000
      Contiguous physical: 0x8c7edf80
      Contiguous size: 0x00400000
    Succesfully opened device
    native_fbdev: 2 buffers of 320x240
    Framebuffer format: 6, flip_rb=0
    Framebuffer format: 6, flip_rb=0
    SDL_Init
    Init Audio
    Init VS
    GL_APPLE_texture_max_level
    GL_EXT_blend_minmax
    GL_EXT_discard_framebuffer
    GL_EXT_map_buffer_range
    GL_EXT_multi_draw_arrays
    GL_EXT_read_format_bgra
    GL_EXT_texture_filter_anisotropic
    GL_EXT_texture_format_BGRA8888
    GL_EXT_texture_type_2_10_10_10_REV
    GL_EXT_unpack_subimage
    GL_NV_draw_buffers
    GL_NV_fbo_color_attachments
    GL_NV_read_buffer
    GL_OES_EGL_image
    GL_OES_EGL_image_external
    GL_OES_compressed_ETC1_RGB8_texture
    GL_OES_depth24
    GL_OES_depth_texture
    GL_OES_element_index_uint
    GL_OES_fbo_render_mipmap
    GL_OES_get_program_binary
    GL_OES_mapbuffer
    GL_OES_packed_depth_stencil
    GL_OES_rgb8_rgba8
    GL_OES_standard_derivatives
    GL_OES_stencil8
    GL_OES_surfaceless_context
    GL_OES_texture_npot
    GL_OES_vertex_array_object
    S3TC: 0 ATITC: 0
    Init SM
    Init Mixer
    Init SoundServer
    Init SpatialSoundServer
    Init Physicsserver
    ERROR: viewport_data_create: Can't create framebuffer for vd
       At: drivers/gles2/rasterizer_gles2.cpp:3972.

And here's the code snippet where the error occurs:
Code: [Select]
RID RasterizerGLES2::viewport_data_create() {

ViewportData *vd = memnew( ViewportData );

glActiveTexture(GL_TEXTURE0);
glGenFramebuffers(1, &vd->lum_fbo);
glBindFramebuffer(GL_FRAMEBUFFER, vd->lum_fbo);

GLuint format_luminance = use_fp16_fb?_GL_RG_EXT:GL_RGBA;
GLuint format_luminance_type = use_fp16_fb?(full_float_fb_supported?GL_FLOAT:_GL_HALF_FLOAT_OES):GL_UNSIGNED_BYTE;
GLuint format_luminance_components = use_fp16_fb?_GL_RG_EXT:GL_RGBA;

glGenTextures(1, &vd->lum_color);
glBindTexture(GL_TEXTURE_2D, vd->lum_color);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
//glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0,
//      GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glTexImage2D(GL_TEXTURE_2D, 0, format_luminance, 1, 1, 0,
     format_luminance_components, format_luminance_type, NULL);

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
       GL_TEXTURE_2D, vd->lum_color, 0);


GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);

glBindFramebuffer(GL_FRAMEBUFFER, base_framebuffer);
DEBUG_TEST_ERROR("Viewport Data Init");
if (status != GL_FRAMEBUFFER_COMPLETE) {
WARN_PRINT("Can't create framebuffer for vd");
}

return viewport_data_owner.make_rid(vd);
}

glCheckFramebufferStatus() is returning GL_FRAMEBUFFER_UNSUPPORTED. Perhaps someone with OpenGLES knowledge can help ;D

hi-ban

  • Posts: 886
Re: Godot Game Engine on GCW0?
« Reply #4 on: March 19, 2015, 12:34:44 pm »
did you add -DMESA_EGL_NO_X11_HEADERS to your compile flags?

Shin-NiL

  • Posts: 355
    • Shin-NiL's Personal Web Page (Brazilian Portuguese)
Re: Godot Game Engine on GCW0?
« Reply #5 on: March 19, 2015, 02:09:33 pm »
did you add -DMESA_EGL_NO_X11_HEADERS to your compile flags?

Nope, I didn't, since I thought that was no longer necessary on the latest toolchain. I got no compile error, the above mentioned was in runtime.
I'll try again with -DMESA_EGL_NO_X11_HEADERS, thanks ;)

EDIT: I'm not using EGL, only SDL2.
« Last Edit: March 19, 2015, 02:11:05 pm by Shin-NiL »

pcercuei

  • Posts: 1667
    • My devblog
Re: Godot Game Engine on GCW0?
« Reply #6 on: March 19, 2015, 02:18:28 pm »
What are the values of use_fp16_fb and full_float_fb_supported?
Both should be false.

Shin-NiL

  • Posts: 355
    • Shin-NiL's Personal Web Page (Brazilian Portuguese)
Re: Godot Game Engine on GCW0?
« Reply #7 on: March 19, 2015, 04:47:59 pm »
@hi-ban: no luck with the cflags.

@pcercuei: yes, both are false. Here's the full code for reference (it's huge).

hi-ban

  • Posts: 886
Re: Godot Game Engine on GCW0?
« Reply #8 on: March 19, 2015, 05:24:06 pm »
@hi-ban: no luck with the cflags.

@pcercuei: yes, both are false. Here's the full code for reference (it's huge).


EDIT (didnt read glCheckFramebufferStatus() is returning GL_FRAMEBUFFER_UNSUPPORTED.):

https://www.khronos.org/opengles/sdk/docs/man/xhtml/glCheckFramebufferStatus.xml

"The combination of internal formats of the attached images violates an implementation-dependent set of restrictions."

There seems to be a problem with some specific restrictions of the etnaviv driver for the GCW Zero. Yeah, i think only the firmware guys could give you an answer... you can, however, check the notes here: http://www.gcw-zero.com/files/etnaviv-2013-10-04.html
« Last Edit: March 19, 2015, 05:43:36 pm by hi-ban »

Shin-NiL

  • Posts: 355
    • Shin-NiL's Personal Web Page (Brazilian Portuguese)
Re: Godot Game Engine on GCW0?
« Reply #9 on: March 19, 2015, 06:51:42 pm »
Thank you very much, hi-ban. I'll check the notes.

Shin-NiL

  • Posts: 355
    • Shin-NiL's Personal Web Page (Brazilian Portuguese)
Re: Godot Game Engine on GCW0?
« Reply #10 on: March 20, 2015, 10:37:13 am »
This statement is still valid?
Quote
Use EGL to set up a context for OpenGL ES. We're looking at adding SDL2 as an alternative, but EGL is the only option in this release.
I'm using SDL2, is there some limitation? My "Hello World Triangle" works fine with SDL2...

hi-ban

  • Posts: 886
Re: Godot Game Engine on GCW0?
« Reply #11 on: March 20, 2015, 11:31:40 am »
Reading from the GCW Zero site, here are some quotes from the latest firmware release notes (2014-08-20):

Quote
Added libraries: GLM (OpenGL Mathematics), SDL2 (no longer experimental), SDL2_image, SDL2_ttf, SDL2_mixer, SDL2_net.

And from the latest toolchain (2014-08-20):

Quote
Changes: updated GCC to 4.9.1, added GLM (OpenGL Mathematics), SDL2 (no longer experimental), SDL2_image, SDL2_ttf, SDL2_mixer, SDL2_net.

So it seems SDL2 should work, but yeah, i think only mth or wumpus could properly answer to that (they worked on the etnaviv driver). You should be able to find them on #gcw at freenode IRC.
« Last Edit: March 20, 2015, 11:41:53 am by hi-ban »

 

Post a new topic