How AMD and Nvidia lost the mobile GPU chip business to Apple -- with help from Samsung an...

124»

Comments

  • Reply 61 of 65
    foggyhillfoggyhill Posts: 4,767member
    Quote:

    Originally Posted by abozhin View Post

     

    Good article! But I'm not agree with this point:

    Nvidia's Tegra K1 offers full OpenGL 4.5 support with proprietary extensions, so Tegra K1 has more hardware and software features than PowerVR 6 (and probably PVR7) even with Metal API. Yep, maybe Metal API is a modern API, but FP OpenGL has more features and with AZDO-techs you can achieve similar to Metal API performance. Yes, PVR6XT in iPad Air 2 scores equal results to Tegra K1 in GFXBench T-Rex/Manhattan tests but in more complex tests (for example with tesselation feature) Tegra K1 will be faster.

    And with Metal API developers can target only PowerVR6-devices on iOS, but with FP OpenGL 4.* API support developers can target Windows/OSX/Linux on AMD/NVIDIA GPUs + Tegra K1/X1 on Android.


     

    Considering "only" means 45M+ device a year (for the A8X), I think the develloppers will be happy with that....

  • Reply 62 of 65
    Quote:



    Originally Posted by Macky the Macky View Post

    The K1 is a powerful chip

    I think that NVIDIA made a PR-mistake. The main advantage of newest Tegras (like K1 and X1) is hardware/software features, not performance. You can compare GL_extensions in Tegra and A8X.

    Tegra:

    GL_ANDROID_extension_pack_es31a

    GL_EXT_base_instance

    GL_EXT_blend_minmax

    GL_EXT_buffer_storage

    GL_EXT_color_buffer_float

    GL_EXT_color_buffer_half_float

    GL_EXT_copy_image

    GL_EXT_debug_label

    GL_EXT_debug_marker

    GL_EXT_disjoint_timer_query

    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_indirect

    GL_EXT_occlusion_query_boolean

    GL_EXT_post_depth_coverage

    GL_EXT_primitive_bounding_box

    GL_EXT_raster_multisample

    GL_EXT_render_snorm

    GL_EXT_robustness

    GL_EXT_separate_shader_objects

    GL_EXT_shader_implicit_conversions

    GL_EXT_shader_integer_mix

    GL_EXT_shader_io_blocks

    GL_EXT_shader_texture_lod

    GL_EXT_shadow_samplers

    GL_EXT_sRGB

    GL_EXT_sRGB_write_control

    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_compression_s3tc

    GL_EXT_texture_cube_map_array

    GL_EXT_texture_filter_anisotropic

    GL_EXT_texture_filter_minmax

    GL_EXT_texture_format_BGRA8888

    GL_EXT_texture_norm16

    GL_EXT_texture_rg

    GL_EXT_texture_sRGB_decode

    GL_EXT_texture_storage

    GL_EXT_texture_view

    GL_EXT_unpack_subimage

    GL_KHR_blend_equation_advanced

    GL_KHR_blend_equation_advanced_coherent

    GL_KHR_context_flush_control

    GL_KHR_debug

    GL_KHR_robust_buffer_access_behavior

    GL_KHR_robustness

    GL_KHR_texture_compression_astc_ldr

    GL_NV_bgr

    GL_NV_bindless_texture

    GL_NV_blend_equation_advanced

    GL_NV_blend_equation_advanced_coherent

    GL_NV_conditional_render

    GL_NV_conservative_raster

    GL_NV_copy_buffer

    GL_NV_copy_image

    GL_NV_draw_buffers

    GL_NV_draw_instanced

    GL_NV_draw_texture

    GL_NV_EGL_stream_consumer_external

    GL_NV_explicit_attrib_location

    GL_NV_fbo_color_attachments

    GL_NV_fill_rectangle

    GL_NV_fragment_coverage_to_color

    GL_NV_fragment_shader_interlock

    GL_NV_framebuffer_blit

    GL_NV_framebuffer_mixed_samples

    GL_NV_framebuffer_multisample

    GL_NV_generate_mipmap_sRGB

    GL_NV_geometry_shader_passthrough

    GL_NV_image_formats

    GL_NV_instanced_arrays

    GL_NV_internalformat_sample_query

    GL_NV_non_square_matrices

    GL_NV_occlusion_query_samples

    GL_NV_pack_subimage

    GL_NV_packed_float

    GL_NV_packed_float_linear

    GL_NV_path_rendering

    GL_NV_path_rendering_shared_edge

    GL_NV_pixel_buffer_object

    GL_NV_polygon_mode

    GL_NV_read_buffer

    GL_NV_read_depth

    GL_NV_read_depth_stencil

    GL_NV_read_stencil

    GL_NV_sample_locations

    GL_NV_sample_mask_override_coverage

    GL_NV_secure_context

    GL_NV_shader_noperspective_interpolation

    GL_NV_shadow_samplers_array

    GL_NV_shadow_samplers_cube

    GL_NV_sRGB_formats

    GL_NV_texture_array

    GL_NV_texture_border_clamp

    GL_NV_texture_compression_latc

    GL_NV_texture_compression_s3tc

    GL_NV_texture_compression_s3tc_update

    GL_NV_timer_query

    GL_NV_viewport_array

    GL_NV_viewport_array2

    GL_OES_compressed_ETC1_RGB8_texture

    GL_OES_depth_texture

    GL_OES_depth_texture_cube_map

    GL_OES_depth24

    GL_OES_depth32

    GL_OES_draw_buffers_indexed

    GL_OES_EGL_image

    GL_OES_EGL_image_external

    GL_OES_EGL_sync

    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_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_surfaceless_context

    GL_OES_tessellation_point_size

    GL_OES_tessellation_shader

    GL_OES_texture_border_clamp

    GL_OES_texture_buffer

    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

    Apple A8X

    GL_APPLE_clip_distance

    GL_APPLE_color_buffer_packed_float

    GL_APPLE_copy_texture_levels

    GL_APPLE_rgb_422

    GL_APPLE_texture_format_BGRA8888

    GL_EXT_color_buffer_half_float

    GL_EXT_debug_label

    GL_EXT_debug_marker

    GL_EXT_pvrtc_sRGB

    GL_EXT_read_format_bgra

    GL_EXT_separate_shader_objects

    GL_EXT_shader_framebuffer_fetch

    GL_EXT_shader_texture_lod

    GL_EXT_shadow_samplers

    GL_EXT_texture_filter_anisotropic

    GL_IMG_read_format

    GL_IMG_texture_compression_pvrtc

    GL_KHR_texture_compression_astc_ldr

    GL_OES_standard_derivatives

    Game developers can do much more with Tegra than with any other mobile GPU. So, the main problem of Tegra is popularity. Technically K1/X1 are superior than PowerVR6, Adreno 4xx, Mali-T8xx etc (and even PowerVR 7). I don't want to say that Apple A8X is a bad SoC, no, it has a great GPU, great drivers, great new API from Apple, perfect SDKs, debuggers and profilers. But for game developers (from technical side) Tegra is better because it has a gaming-oriented GPU architecture. Of course, Tegra has problems with monetization, but it isn't the problem of technology.

    Quote:
    Originally Posted by Macky the Macky View Post

    However, being powerful while being a low power drain is also necessary for the mobile market.

    You're right, A8X is slightly more power-efficient than Tegra K1, but that's because Apple used more efficient process node (20nm in A8X vs 28 nm in K1). On the same process node Tegra has equal consumption with better performance.

    Quote:
    Originally Posted by Macky the Macky View Post

    Welcome to the forum!

    Thanks!

     

    Quote:

    Originally Posted by foggyhill View Post

    Considering "only" means 45M+ device a year (for the A8X)


    You're right. I don't have information about sales of OpenGL-compatible PCs, but I know that modern AMDs, GeForce 4xx, 5xx, 6xx, 7xx, 8xx, 9xx, Haswell/Broadwell GPUs on Windows XP and higher, Linux and OS X 10.10 support OpenGL 4.* (+Tegra K1/X1 in shield tablet). Maybe A8X has more sales than these PCs/tablets, I don't know.

     

     

    P. S. I don't have a TK1-powered device, so I talk only about theory. :)

  • Reply 63 of 65

    ??l????? s??? uo ????? ??????? ? un? ?s??l?

  • Reply 64 of 65
    Good article but I'd like to add a bit of missing history.

    No account of Apple and graphics is complete without mentioning late 80s apple spin-off RasterOps, which made RISC processor based graphic processors, graphic cards and displays.

    RasterOps eventually acquired AT+T spin-off Truevision and subsequently formed a strategic partnership with Hitachi, which took over hardware development under Hitachi Digital Graphics.

    RasterOps approach using RISC processor cores and tons of "VRAM" was actually a good one at the time because acceleration performance was superior to early video processors but was far too expensive to work as a consumer market product (high end cards were more expensive than a PC).

    Anyway, add that to the junk pile of history, company is long gone even though some vintage hardware is still available and collectable.
  • Reply 65 of 65

    Then you're going to get a kick out of this story.  Remember Pong?  Well fast forward 35 years, I'm in my garage and I hear this noise, track it down and somehow my old pong set got turned on.  Old batteries still good.  I'm taking bids.

Sign In or Register to comment.