Saturday 16 February 2019

Been busy sorry

I'm focusing a lot more of my time on the Scratchpadgames.net forums, where I've been updating my most recent acquisitions and experiments as well as catching up (or trying to) on some issue with the book code, and articles. That and overwhelming pressure of my day job are making me long for the spring holidays. (Where I promise I am going to rest for a few days)

The most interesting thing to report is a few new OpenGLES3.0+ boards I've got hold of or are on the way thanks to generous donations from the makers.

I got a NanoPi Neo4 from the ever friendly FriendlyElec, and its just as nice as the T4, which I did eventually find a nice stable build to work on and it is a wonderful full professional board. The NEO4 has the same chip and less connections in a smaller board.

Its a fraction of the price of most other RK3399 Hexacore boards, and less ports might trouble some makers, but for me its fine, this is a beast, and looks super cool with its custom fitted heatsink



2 other RK3399 boards are on the way to me, thanks to the kind donations from the makers the RockPi4 which I've mentioned before but have had helluva time finding it in Europe at a decent price is on its way. As is the RockPro64 from Pine. I've never liked their kickstarter PineA64 board, but I've seen them grow and improve over the time they've been going so am quite excited to see their latest beast and hope that the software is up to it this time

ROCKPro64

All these lovely RK3399 boards really are opening up incredible new possibilities for graphics coders. Even though the gpu core size of most of them isn't much better (still MP4's) they are much faster bits of silicon and can push a lot more content if treated nicely with their OpenGLES3.0+ capabilities.

In other news, I finally fixed the "shader" issues with the UP^2 board, it was in fact a small maths issue in my code, bad programming, that didn't show up on ARM systems but did on intel.

Even though I only have the base model Celeron dual core system, what I do have is a (I think) 12 core, GPU capable of OpenGL 4.5 and I assume through some other wizardly full OpenGLES3.2 (at least it reports it ca).  Its a fantastically fast, powerful system, I know its pushing it to call it an SBC, its really a mini PC, but I like having something at the top end of the scale to play with and see how well things can scale back.
This is such a beast, check out this list of extensions, which is what the list extensions reports, but I suspect its all on board and no extension sneeded

/* UpSquared's extensions...wow mama
 *:GL_ANDROID_extension_pack_es31a
 *GL_ANGLE_texture_compression_dxt3
 *GL_ANGLE_texture_compression_dxt5
 *GL_APPLE_texture_max_level
 *GL_EXT_blend_func_extended
 *GL_EXT_blend_minmax
 *GL_EXT_buffer_storage
 *GL_EXT_clip_cull_distance
 *GL_EXT_color_buffer_float
 *GL_EXT_compressed_ETC1_RGB8_sub_texture
 *GL_EXT_copy_image
 *GL_EXT_discard_framebuffer
 *GL_EXT_disjoint_timer_query
 *GL_EXT_draw_buffers
 *GL_EXT_draw_buffers_indexed
 *GL_EXT_draw_elements_base_vertex
 *GL_EXT_frag_depth
 *GL_EXT_geometry_point_size
 *GL_EXT_geometry_shader
 *GL_EXT_gpu_shader5
 *GL_EXT_map_buffer_range
 *GL_EXT_multi_draw_arrays
 *GL_EXT_occlusion_query_boolean
 *GL_EXT_polygon_offset_clamp
 *GL_EXT_primitive_bounding_box
 *GL_EXT_read_format_bgra
 *GL_EXT_robustness
 *GL_EXT_separate_shader_objects
 *GL_EXT_shader_framebuffer_fetch
 *GL_EXT_shader_integer_mix
 *GL_EXT_shader_io_blocks
 *GL_EXT_shader_samples_identical
 *GL_EXT_tessellation_point_size
 *GL_EXT_tessellation_shader
 *GL_EXT_texture_border_clamp
 *GL_EXT_texture_buffer
 *GL_EXT_texture_compression_dxt1
 *GL_EXT_texture_cube_map_array
 *GL_EXT_texture_filter_anisotropic
 *GL_EXT_texture_format_BGRA8888
 *GL_EXT_texture_rg
 *GL_EXT_texture_sRGB_decode
 *GL_EXT_texture_type_2_10_10_10_REV
 *GL_EXT_unpack_subimage
 *GL_INTEL_conservative_rasterization
 *GL_INTEL_performance_query
 *GL_KHR_blend_equation_advanced
 *GL_KHR_blend_equation_advanced_coherent
 *GL_KHR_context_flush_control
 *GL_KHR_debug
 *GL_KHR_no_error
 *GL_KHR_robust_buffer_access_behavior
 *GL_KHR_robustness
 *GL_KHR_texture_compression_astc_hdr
 *GL_KHR_texture_compression_astc_ldr
 *GL_KHR_texture_compression_astc_sliced_3d
 *GL_MESA_shader_integer_functions
 *GL_NV_draw_buffers
 *GL_NV_fbo_color_attachments
 *GL_NV_image_formats
 *GL_NV_read_buffer
 *GL_NV_read_depth
 *GL_NV_read_depth_stencil
 *GL_NV_read_stencil
 *GL_OES_EGL_image
 *GL_OES_EGL_image_external
 *GL_OES_EGL_sync
 *GL_OES_compressed_ETC1_RGB8_texture
 *GL_OES_copy_image
 *GL_OES_depth24
 *GL_OES_depth_texture
 *GL_OES_depth_texture_cube_map
 *GL_OES_draw_buffers_indexed
 *GL_OES_draw_elements_base_vertex
 *GL_OES_element_index_uint
 *GL_OES_fbo_render_mipmap
 *GL_OES_geometry_point_size
 *GL_OES_geometry_shader
 *GL_OES_get_program_binary
 *GL_OES_gpu_shader5
 *GL_OES_mapbuffer
 *GL_OES_packed_depth_stencil
 *GL_OES_primitive_bounding_box
 *GL_OES_required_internalformat
 *GL_OES_rgb8_rgba8
 *GL_OES_sample_shading
 *GL_OES_sample_variables
 *GL_OES_shader_image_atomic
 *GL_OES_shader_io_blocks
 *GL_OES_shader_multisample_interpolation
 *GL_OES_standard_derivatives
 *GL_OES_stencil8
 *GL_OES_surfaceless_context
 *GL_OES_tessellation_point_size
 *GL_OES_tessellation_shader
 *GL_OES_texture_3D
 *GL_OES_texture_border_clamp
 *GL_OES_texture_buffer
 *GL_OES_texture_cube_map_array
 *GL_OES_texture_float
 *GL_OES_texture_float_linear
 *GL_OES_texture_half_float
 *GL_OES_texture_half_float_linear
 *GL_OES_texture_npot
 *GL_OES_texture_stencil8
 *GL_OES_texture_storage_multisample_2d_array
 *GL_OES_vertex_array_object
 *GL_OES_vertex_half_float
 *GL_OES_viewport_array
 *
*/


Sadly I never got anywhere with the UpCore Atom board, which should outperform the ^2 board, it's really not working no matter what I try,  and I'm trying to send it back for a replacement, but its proving to be quite a chore to get them to send RMA info. Frustrating as they are here in the Netherlands (I think in my home town as I saw their logo on a building here, but hard to verify that)

There's been a lot of new Orange and Banana boards, but I've resisted buying them, the software always lets them down, so am going to wait and see what people report before leaping in to add to the drawer of shame.

Thats it, I'll try to keep this blog updated a bit more, but if you are missing out on your fix of SBC for games/graphics, join the forums on my website, www.scratchpadgames.net