Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - JeGX

Pages: 1 ... 16 17 [18] 19 20 ... 70
3D-Tech News Around The Web / VFPR - a Vulkan Forward Plus Renderer
« on: December 20, 2016, 04:33:20 PM »
In this project, we created a Forward Plus (tiled forward) renderer in Vulkan using compute shader to deal with light culling.

Our implementation is ~1000% faster than regular forward renderer (tested in Vulkan) under the condition of 200 lights.

Yes, Vulkan is really powerful! We learned about Vulkan at SIGGRAPH 2016 at Anaheim, and decided to dive into it at our final project.

- VFPR @ github

The Nintendo Switch, the upcoming home gaming system from Nintendo, has been added on December 18 2016  to the list of Vulkan and OpenGL conformant products at Khronos. The gaming console will support the following APIs: Vulkan 1.0, OpenGL 4.5 and OpenGL ES 3.2.

- Vulkan Conformant Products @ Khronos
- OpenGL Conformant Products @ Khronos
- OpenGL ES Conformant Products @ Khronos
- News @

- Nintendo Switch Press Release
- First Look at Nintendo Switch @ youtube

3D-Tech News Around The Web / Vulkan API specifications 1.0.38 released
« on: December 19, 2016, 08:22:09 PM »
* Bump API patch number and header version number to 38 for this update.

Github Issues:

  * Make ename:VK_PIPELINE_STAGE_HOST_BIT invalid for all stage masks,
    except for flink:vkCmdWaitEvents (public issue 261).

Internal Issues:

  * Added validation language for flink:vkQueueBindSparse,
    slink:VkPresentInfoKHR, and slink:VkSubmitInfo, and a note to the
    <<synchronization-semaphores-waiting,Semaphore Waiting and Unsignaling>>
    section to clarify that semaphores must be signaled and waited on in a
    1:1 fashion (internal issue 546).
  * Modify valid usage for slink:VkBufferImageCopy to only require
    pname:bufferOffset to be a multiple of the image format's element size
    when the format is not depth/stencil (internal issue 594).

Other Issues:

  * Vulkan(R) is now a registered trademark symbol, and this is reflected in
    documents and copyright statements.


3D-Tech News Around The Web / Re: TechPowerUp GPU-Z v1.16.0
« on: December 12, 2016, 06:13:10 PM »
Download zone updated again: [ GPU-Z 1.16.0 Download ]  ;)

3D-Tech News Around The Web / Re: TechPowerUp GPU-Z v1.15.0
« on: December 12, 2016, 06:07:43 PM »
Download zone updated: [ GPU-Z 1.15.0 Download ]

Last article: Rendering Real Time 3D Graphics on a 32×32 RGB LED Matrix Panel with a Raspberry Pi and GeeXLab

In the previous article, I explained how to control the color of a particular LED of the RGB LED matrix panel. Thanks to that knowledge, you can draw simple graphics: points, circles, lines and so on. But how can we easily draw a rotating triangle? Or a mesh like a torus? Or any 3D scene? Answer in this article!


3D-Tech News Around The Web / Re: NVIDIA GeForce driver 376.19
« on: December 06, 2016, 05:20:46 PM »

But unfortunately I'm working with a GNU/Linux build of GeeXLab.

I will try to compile the DLLs for Linux asap.

If you only need to store data in the render target, no need to bind the render target texture. The shader will automatically write on the render target texture. You have to bind the render target texture later when you will read it in a shader:

Code: [Select]
-- init --
local PF_U8_RGBA = 3;
render_tex_tgt = gh_render_target.create_ex(winW, winH, PF_U8_RGBA, 0, 1)

-- frame --
-- Render some stuff in the render target

-- Now read from the render target texture
local col_tex_unit = 0
gh_texture.activate_rt_color(render_tex_tgt, col_tex_unit)

The reference guide is not up to date. There is another function that binds a particular render target texture when you create a render target with several color targets.

I updated the GeeXLab core DLLs with new pixels formats for the render targets:
Code: [Select]
PF_UI32_R = 13
PF_UI32_RG = 14
PF_UI32_RGBA = 15
PF_I32_R = 16
PF_I32_RG = 17
PF_I32_RGBA = 18
PF_UI16_R = 19
PF_UI16_RG = 20
PF_UI16_RGBA = 21
PF_I16_R = 22
PF_I16_RG = 23
PF_I16_RGBA = 24
PF_UI8_R = 25
PF_UI8_RG = 26
PF_UI8_RGBA = 27
PF_I8_R = 28
PF_I8_RG = 29
PF_I8_RGBA = 30

You can downloads the DLLs from this link:

Just copy these DLLs in GeeXLab folder. These DLLs work with GeeXLab 0.13.0 for Windows.

I didn't test these new PFs so let me know.

Currently, all pixel formats supported for the render targets are:

Code: [Select]
PF_U8_RGB = 1
PF_U8_BGR = 2
PF_U8_RGBA = 3
PF_U8_BGRA = 4

PF_F32_RGB = 5
PF_F32_RGBA = 6

PF_F32_R = 7

PF_F16_RGB = 8
PF_F16_RGBA = 9
PF_F16_R = 10

Let me know what pixel formats you need (like RG16UI) and I will try to update GeeXLab (Windows version) asap.


Thanks Stefan, I will try it asap.

Recently we introduced the VK_NVX_device_generated_commands (DGC) Vulkan extension, which allows rendering commands to be generated entirely on the GPU.

Earlier this week, we added support for VK_NVX_device_generated_commands to our Windows and Linux release drivers.

Today we are releasing the ‘BasicDeviceGeneratedCommandsVk’ SDK GameWorks sample. We highly recommend reading the introductory Vulkan Device-Generated Commands article in addition to this blog post.

VK_NVX_device_generated_commands is available in R376.09.

- Driver and New Sample for VK_NVX_device_generated_commands
- Vulkan Device-Generated Commands
- BasicDeviceGeneratedCommandsVk sample @ github

Understanding concurrency (and what breaks it) is extremely important when optimizing for modern GPUs. Modern APIs like DirectX® 12 or Vulkan™ provide the ability to schedule tasks asynchronously, which can enable higher GPU utilization with relatively little effort.


Third article: Drawing Simple Graphics on a RGB LED Matrix Panel with a Raspberry Pi and GeeXLab

n previous articles (HERE and HERE), we have talked about the RGB LED matrix panel as well as the RGB Matrix HAT which is the hardware interface between the LED panel and the Raspberry Pi. Today we will cover how to draw simple graphics on the LED panel.


GeeXLab - english forum / Re: GeeXLab SDK ?
« on: November 27, 2016, 10:25:50 AM »
I just now realized how this version of GeeXLab is different from last one i used :o Too low-level for me, seams like i can't create simple scene no more. Sad day for me.

Here is a simple rendering code in a FRAME script:

Code: [Select]
gh_object.set_position(torus, x, y, z)
gh_object.set_euler_angles(torus, pitch, yaw, roll)

This code is simple and at the same time offers a better control on the rendering than in previous GeeXLab. What is a simple scene for you? Maybe a simple Lua framework over GeeXLab Lua API can help you... Let me know what do you need.

GeeXLab - english forum / Re: GeeXLab SDK ?
« on: November 27, 2016, 10:07:03 AM »

Can I buy professional version of GeeXLab ?

Currently not yet, I'm working on it. The PRO version of GeeXLab is already there, but I don't have yet defined the price / licensing model (I love flat licensing)...

Long ago there was SDK version allowing one to create and package windows application. I very much liked that feature.

There is also a SDK which allows to embed GeeXLab engine in your Windows / Linux application.  This SDK is really simple to use. But same problem than with GeeXLab PRO: price / licensing...

Second article: Adafruit RGB Matrix HAT: the Raspberry Pi can talk with the RGB LED Matrix Panel

Here the second article (first one is HERE) about how to render real time 3D stuff on a RGB LED matrix panel with a Raspberry Pi. In this article, we’ll look at the hardware interface between the Raspberry Pi and the RGB LED matrix display: the RGB Matrix HAT.


GeeXLab - english forum / Re: Shadertoy multipass demos
« on: November 25, 2016, 06:42:39 PM »
More tests, need more help  :-[


Ok, I looked at the neon clock demo and you have forgot (in file frame_user.lua) to update the iFrame uniform variable of the shadertoy_prog_img GPU program:

Code: [Select]
if ((img > 0) and (shadertoy_prog_img > 0)) then


  gh_gpu_program.uniform3f(shadertoy_prog_img, "iResolution", winW, winH, 0.0)
  gh_gpu_program.uniform1f(shadertoy_prog_img, "iGlobalTime", elapsed_time)
  gh_gpu_program.uniform4f(shadertoy_prog_img, "iMouse", mx, my, mz, 0)
  local timestamp = os.time()
  local tmp ="*t", timestamp)
  local time_seconds = tmp.hour * 3600.0 + tmp.min * 60.0 + tmp.sec
  gh_gpu_program.uniform4f(shadertoy_prog_img, "iDate", tmp.year, tmp.month,, time_seconds)
  gh_texture.rt_color_bind(buf_A, 0)
  gh_gpu_program.uniform1i(shadertoy_prog_img, "iChannel0", 0)
  gh_gpu_program.uniform1i(shadertoy_prog_img, "iFrame", frame)
  draw_quad(0, 0, winW, winH) 

Thanks to that line, the demo works perfectly:

I added this demo to the code sample pack. Thanks Stefan for the porting  ;)

Pages: 1 ... 16 17 [18] 19 20 ... 70