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] 2 3 ... 72
1
Quote
Compilers are known for doing all sorts of cool optimizations on the source code, generating very efficient assembly code. You can expect that there will be no useless computations in the compiled code. Even if you leave those inefficiencies, most major compilers will optimize everything away. Moreover, compilers are aware (to some degree) about microarchitectural details of the target CPU. So, it may seems that compiler is the one who is in charge for performance, but it’s not.

Modern high-end CPUs are also known to be really greedy when it comes for performance, and they also do amazing job at running assembly code super-fast. In this post I tried to show what optimizations you can rely on, and what patterns are still beyond CPU capabilities.

Link: https://dendibakh.github.io/blog/2018/04/22/What-optimizations-you-can-expect-from-CPU

2
GeeXLab - english forum / How to enable LuaJIT in GeeXLab
« on: April 23, 2018, 03:50:11 PM »
LuaJIT is available in GeeXLab on Windows and Linux. Here is a short post that explains how to use LuaJIT engine in place of regular Lua engine:

http://www.geeks3d.com/hacklab/20180423/how-to-enable-luajit-in-geexlab/


3
Possible specs:
- GPU: GT104 12nmFinFET - base: 1600MGh - boost: 1800MHz
- Shader cores: 3584
- Texture units: 224
- ROPs: 64
- Memory: 8 or 16GB GDDR6, 256-bit interface
- FP32 performance: 13TFLOPS

The launch is planned for Q3 2018 (July) at $699.

Links:
- https://www.extremetech.com/gaming/267982-nvidia-gtx-1180-specs-allegedly-leaked
- https://wccftech.com/nvidia-geforce-gtx-1180-specs-performance-price-release-date-prelimenary/

4
New screenshots received today:
















5
GeeXLab - english forum / GeeXLab 0.23.0.0 released
« on: April 23, 2018, 02:23:47 PM »
GeeXLab 0.23.0.0 is available for Windows 64/32-bit.

Downloads: http://www.geeks3d.com/geexlab/downloads/

Changelog:
Quote
Version 0.23.0.0 - 2018.04.22
-----------------------------
+ added shader_thread_group_get_properties_nv() to gh_renderer (lua, python).
+ added conservative_rasterization_get_properties_nv() and
  conservative_rasterization_set_sub_pixel_precision_bias_nv() to gh_renderer (lua, python).
+ added support of GL_INTEL_conservative_rasterization and GL_NV_conservative_raster.
+ Vulkan: added vk_shader_core_properties_amd_get_value() to gh_renderer lib (lua, python).
+ added get_view_matrix_4x4() and get_projection_matrix_4x4() to gh_camera lib (lua, python).
+ added set_transform() and get_transform() to gh_object lib (lua, python).
* fixed gh_physx3.create_actor_mesh_v2(). Convex meshes can now be used
  in rigid body collisions.
! updated internal functions to set object transformation. Now position and orientation
  are updated when an object is updated with a transformation matrix.
! updated Vulkan plugin with latest Vulkan 1.1.74 headers.

Full changelog: http://www.geeks3d.com/geexlab/changelog/

6
GeeXLab - english forum / Kapla blocks game prototype with PhysX
« on: April 19, 2018, 04:54:53 PM »
I received this screenshot from a GeeXLab user that is developing a micro-game based on Kapla constructions blocks. This is currently a prototype and I don't know if a game based on this prototype will be released in the future. But it looks cool. All blocks are managed by the PhysX 3 engine.





7
GeeXLab - english forum / GeeXLab 0.22.2.0 released for Windows
« on: April 19, 2018, 04:40:48 PM »
A new version of GeeXLab has been released for Windows 32 and 64-bit. GeeXLab 0.22.2.0  brings minor improvements in ImGui management. You can also set the live-coding state of a GPU program via Lua or Python using the new gh_gpu_program.set_livecoding_state() function.

Downloads: http://www.geeks3d.com/geexlab/downloads/

Quote
Version 0.22.2.0 - 2018.04.19
-----------------------------
+ added set_livecoding_state() to gh_gpu_program lib (lua, python).
+ added get_color() and set_style_colors() to gh_imgui lib (lua, python).
! ImGui styles are initialized to default values for each new demo.

8
GeeXLab - english forum / GeeXLab 0.22.1.0 released for all platforms
« on: April 19, 2018, 04:36:01 PM »
GeeXLab 0.22.1.0 is now available for all platforms (Windows, Linux, macOS, Raspberry Pi and Tinker Board).

Downloads: http://www.geeks3d.com/geexlab/downloads/

Release notes: http://www.geeks3d.com/hacklab/20180419/geexlab-0-22-1-released-for-all-platforms/


Quote
Version 0.22.1.0 - 2018.04.12
-----------------------------
+ added new built-in mesh: icosphere (gh_mesh.create_icosphere()).
! updated bounding volume management.
+ added bounding_volume_set_radius(), bounding_volume_set_aabb_min() and
  bounding_volume_set_aabb_max() to gh_object lib (lua, python).
+ added draw_primitives() to gh_renderer lib (lua, python).
+ added create_actor_mesh_v2() to gh_physx3 lib (lua, python) to handle
  convex meshes.
+ added create_actor_capsule() to gh_physx3 lib (lua, python).
! updated enable_state() / disable_state() of gh_renderer lib with
  "GL_PROGRAM_POINT_SIZE".
+ [LINUX] added LuaJIT support.


Version 0.22.0.5 - 2018.03.29
-----------------------------
! recompilation, some PhysX 3 functions were broken.


Version 0.22.0.4 - 2018.03.28
-----------------------------
+ added actor_set_kinematic_target_v2() to gh_physx lib (lua, python)


Version 0.22.0.3 - 2018.03.28
-----------------------------
! updated all gh_object.get_absolute_xxxxx() functions (position, orientation)
  with the new mode 3 (set_absolute_transform_update_mode).
+ added a new mode (3) to set_absolute_transform_update_mode().


Version 0.22.0.2 - 2018.03.26
-----------------------------
! plugin loading: the log file now contains information about plugins that are present.
  Information about missing plugins is no longer in the log file.
! minor internal changes.


Version 0.22.0.1 - 2018.03.25
-----------------------------
+ added set_absolute_transform_update_mode() to gh_object (lua, python)


Version 0.22.0.0 - 2018.03.25
-----------------------------
+ added new library: gh_sqlite3 (lua, python).
+ added LuaSQL with SQLite3 driver (lua only).
+ added menu_begin_main_bar(), menu_end_main_bar(), menu_begin_bar(), menu_end_bar()
  menu_begin(), menu_end() and menu_item() to gh_imgui lib (lua, python).
+ added get_uptime() to gh_utils lib (lua, python)
! updated the ImGuizmo library. All gh_imgui.gizmo_xxxxxx() functions
  are now back (lua, python).

9
GeeXLab - english forum / GeeXLab howto / code snippets
« on: April 04, 2018, 10:28:19 AM »
I added a new HowTo page with code snippets (lua or python) that are widely used in GeeXLab demos:

http://www.geeks3d.com/geexlab/howto/

I will regularly update this page with new code snippets.

The following code snippets are currently available:
Quote
    How to create and resize a 3D camera
    How to create and resize a 2D camera
    How to create a reference grid
    How to load a 2D texture
    How to load a 2D texture with ImageMagick plugin
    How to load a 3D model with ASSIMP plugin
    How to create and use an orbit 3D camera
    How to generate a random number
    How to do color blending
    How to do create a GPU program from Lua buffers
    How to set the vertices color of a quad
    How to rotate an object with quaternions
    How to create and use a render target



10
GeeXLab - english forum / (Shadertoy to GeeXLab) Heeelix
« on: April 04, 2018, 10:00:13 AM »
The heeelix demo has been ported to GeeXLab:

More information and download links:
http://www.geeks3d.com/hacklab/20180404/shadertoy-to-geexlab-heeelix/


11
How to code a vertical separator with smooth edges:

Article + Demo: http://www.geeks3d.com/hacklab/20180403/smoothstep-based-vertical-image-separator-in-glsl/


12
GeeXLab - english forum / ImageMagick plugin: image formats
« on: April 03, 2018, 07:34:08 PM »
Here is the list of all image formats (around 200) supported by the Windows version of the ImageMagick plugin (added in GeeXLab 0.19.0):

Quote
(17:16:06:141) [ImageMagick] Image formats:
(17:16:06:142) [ImageMagick] 3FR
(17:16:06:142) [ImageMagick] 3G2 3GP A AAI AI ART ARW AVI AVS B
(17:16:06:142) [ImageMagick] BGR BGRA BGRO BMP BMP2 BMP3 BRF C CAL CALS
(17:16:06:142) [ImageMagick] CANVAS CAPTION CIN CIP CLIP CLIPBOARD CMYK CMYKA CR2 CRW
(17:16:06:142) [ImageMagick] CUR CUT DCM DCR DCX DDS DFONT DNG DPX DXT1
(17:16:06:142) [ImageMagick] DXT5 EMF EPDF EPI EPS EPS2 EPS3 EPSF EPSI EPT
(17:16:06:142) [ImageMagick] EPT2 EPT3 ERF EXR FAX FILE FITS FLIF FRACTAL FTP
(17:16:06:142) [ImageMagick] FTS G G3 G4 GIF GIF87 GRADIENT GRAY GROUP4 HALD
(17:16:06:142) [ImageMagick] HDR HISTOGRAM HRZ HTM HTML HTTP HTTPS ICB ICO ICON
(17:16:06:142) [ImageMagick] IIQ INFO INLINE IPL ISOBRL ISOBRL6 J2C J2K JNG JNX
(17:16:06:142) [ImageMagick] JP2 JPC JPE JPEG JPG JPM JPS JPT JSON K
(17:16:06:142) [ImageMagick] K25 KDC LABEL M M2V M4V MAC MAP MASK MAT
(17:16:06:142) [ImageMagick] MATTE MEF MIFF MKV MNG MONO MOV MP4 MPC MPEG
(17:16:06:142) [ImageMagick] MPG MRW MSL MSVG MTV MVG NEF NRW NULL O
(17:16:06:142) [ImageMagick] ORF OTB OTF PAL PALM PAM PANGO PATTERN PBM PCD
(17:16:06:142) [ImageMagick] PCDS PCL PCT PCX PDB PDF PDFA PEF PES PFA
(17:16:06:142) [ImageMagick] PFB PFM PGM PGX PICON PICT PIX PJPEG PLASMA PNG
(17:16:06:142) [ImageMagick] PNG00 PNG24 PNG32 PNG48 PNG64 PNG8 PNM PPM PS PS2
(17:16:06:142) [ImageMagick] PS3 PSB PSD PTIF PWP R RADIAL-GRADIENT RAF RAS RAW
(17:16:06:142) [ImageMagick] RGB RGBA RGBO RGF RLA RLE RMF RW2 SCR SCREENSHOT
(17:16:06:142) [ImageMagick] SCT SFW SGI SHTML SIX SIXEL SPARSE-COLOR SR2 SRF STEGANO
(17:16:06:142) [ImageMagick] SUN SVG SVGZ TEXT TGA THUMBNAIL TIFF TIFF64 TILE TIM
(17:16:06:142) [ImageMagick] TTC TTF TXT UBRL UBRL6 UIL UYVY VDA VICAR VID
(17:16:06:142) [ImageMagick] VIFF VIPS VST WBMP WEBP WMF WMV WPG X3F XBM

Source: http://www.geeks3d.com/hacklab/20180402/list-of-image-formats-supported-by-the-imagemagick-plugin/


13
GeeXLab - english forum / RhodiumLC 0.1.1 released
« on: April 03, 2018, 07:25:24 PM »
RhodiumLC is a simple pixel shader benchmark based on a shadertoy demo. RhodiumLC has been updated to version 0.1.1 and versions for Linux and macOS are now available.

Complete story and downloads links:
http://www.geeks3d.com/20180126/rhodiumlc-pixel-shader-gpu-benchmark-opengl/#20180403





 

14
3D-Tech News Around The Web / Quadro GV100 price: $9000
« on: April 02, 2018, 05:40:45 PM »
Quote
CEO Jensen Huang made it clear that the card is built with commercial workstations in mind. For now, studios like Disney and ILM will be utilizing the card and RTX technology to shorten rendering time. The Quadro GV100 will retail for $8,999 direct from Nvidia when it becomes available in April.

Source: https://www.techspot.com/news/73902-nvidia-unveils-quadro-gv100-rtx-technology.html

15
Quote
This talk, presented at GDC 2018, covers some of the main rendering technologies used on Volition’s ‘Agents of Mayhem’. The presentation includes Volition’s adaptation of Weighted Blended Order-Independent Transparency for use with additive as well as non-additive alpha. Also covered is Volition’s approach to tile-based deferred shading, which breaks shading into multiple shaders applied per tile based on feature sets to improve SIMD occupancy. Volition’s implementation of light-blockers, which extend standard light-clip planes to finite rectangles instead of only infinite planes is also be covered, as well as how these light-blockers can be applied to Light Propagation Volumes for GI to greatly reduce light leakage.

Links:
- http://www.dsvolition.com/publications/rendering-technology-in-agents-of-mayhem/
- http://www.dsvolition.com/wp-content/uploads/2018/03/Rendering%20Technology%20in%20Agents%20of%20Mayhem.pptx

16
3D-Tech News Around The Web / D3D12 Raytracing Fallback Layer
« on: April 02, 2018, 08:16:02 AM »
Quote
The D3D12 Raytracing Fallback Layer is a library that emulates the DirectX Raytracing API on devices without native driver/hardware support.

The library is built as a wrapper around the DirectX 12 API and has distinct but similar interfaces from the DirectX Raytracing (DXR) API. The library also redirects to the DXR API when driver support exists, so developers do not need to branch code to support the DXR API simultaneously.

The goal of the Fallback Layer is to enable developers to hit the ground running with the new DXR API without the need for a GPU with hardware support and a DXR capable variant of Windows. As of the GDC release, the Fallback Layer is in an early prototype stage and is a limited substitute for a DXR driver, particularly in terms of performance. A future goal of this project is to tune the Fallback to be performant enough for real-world scenarios in lieu of a DXR driver for small-scale raytracing techniques.

Links:
- https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Libraries/D3D12RaytracingFallback
- DXR forum: http://forums.directxtech.com/index.php?board=248.0

17
Quote
Particle-based methods like smoothed particle hydrodynamics (SPH) are increasingly adopted for large-scale fluid simulation in interactive computer graphics. However, surface rendering for such dynamic particle sets is challenging: current methods either produce low-quality results, or they are time consuming. In this paper, we introduce a novel approach to render high-quality fluid surfaces in screen space. Our method combines the techniques of particle splatting, ray-casting, and surface-normal estimation. We apply particle splatting to accelerate the ray-casting process, estimating the surface normal using principal component analysis (PCA) and a GPU-based technique to further accelerate our method. Our method can produce high-quality smooth surfaces while preserving thin and sharp details of large-scale fluids. The computation and memory cost of our rendering step depends only on the image resolution. These advantages make our method very suitable for previewing or rendering hundreds of millions of particles interactively. We demonstrate the efficiency and effectiveness of our method by rendering various fluid scenarios with different-sized particle sets.

Links:
- http://www.jcgt.org/published/0007/01/02/
- http://www.jcgt.org/published/0007/01/02/paper.pdf
- http://www.jcgt.org/published/0007/01/02/paper-lowres.pdf

18
Quote
New generation, explcit graphics APIs (Vulkan and DirectX 12) are more efficient, involve less CPU overhead. Part of it is that they don't check most errors. In old APIs (Direct3D 9, OpenGL) every function call was validated internally, returned success of failure code, while driver crash indicated a bug in driver code. New APIs, on the other hand, rely on developer doing the right thing. Of course some functions still return error code (especially ones that allocate memory or create some resource), but those that record commands into a command buffer just return void. If you do something illegal, you can expect undefined behavior. You can use Validation Layers / Debug Layer to do some checks, but otherwise everything may work fine on some GPUs, you may get incorrect result, or you may experience driver crash or timeout (called "TDR"). Good thing is that (contrary to old Windows XP), crash inside graphics driver doesn't cause "blue screen of death" or machine restart. System just restarts graphics hardware and driver, while your program received VK_ERROR_DEVICE_LOST code from one of functions like vkQueueSubmit. Unfortunately, you then don't know which specific draw call or other command caused the crash.

NVIDIA proposed solution for that: they created NVIDIA Aftermath library. It lets you (among other things) record commands that write custom "marker" data to a buffer that survives driver crash, so you can later read it and see which command was successfully executed last. Unfortunately, this library works only with NVIDIA graphics cards and only in D3D11 and D3D12.

I was looking for similar solution for Vulkan. When I saw that Vulkan can "import" external memory, I thought that maybe I could use function vkCmdFillBuffer to write immediate value to such buffer and this way implement the same logic. I then started experimenting with extensions: VK_KHR_get_physical_device_properties_2, VK_KHR_external_memory_capabilities, VK_KHR_external_memory, VK_KHR_external_memory_win32, VK_KHR_dedicated_allocation. I was basically trying to somehow allocate a piece of system memory and import it to Vulkan to write to it as Vulkan buffer. I tried many things: CreateFileMapping + MapViewOfFile, HeapCreate + HeapAlloc and other ways, with various flags, but nothing worked for me. I also couldn't find any description or sample code of how these extensions could be used in Windows to import some system memory as Vulkan buffer.

Everything changed when I learned that creating normal device memory and buffer inside Vulkan is enough! It survives driver crash, so its content can be read later via mapped pointer. No extensions required. I don't think this is guaranteed by specification, but it seems to work on both AMD and NVIDIA cards.

...

Links:
- http://asawicki.info/news_1677_debugging_vulkan_driver_crash_-_equivalent_of_nvidia_aftermath.html
- https://github.com/sawickiap/MISC/blob/master/VulkanAfterCrash.h

19
Intel has released a new graphics driver:

Quote
- DRIVER VERSION: 15.65.5.4982
- Windows Driver Store Version 23.20.16.4982

HIGHLIGHTS:
- Surviving Mars* Launch Driver
- Ni No Kuni II Revenant Kingdom* Launch Driver

- Download v4982 win64 @ Geeks3D
- Download @ Intel
- Release notes

On the release notes, this driver exposes Vulkan 1.0.68 but according to GPU Caps Viewer, the Vulkan version is 1.0.66.

This driver exposes the same OpenGL extensions and Vulkan features than v4944.









20
GeeXLab - english forum / Re: GeeXLab 0.20.x.x released
« on: March 30, 2018, 11:58:03 AM »
I installed a fresh version of Tinker OS 2.0.5 and I tested GeeXLab 0.20.x for Tinker OS. I also launched glxgears. Both tools work fine in OpenGL (CPU mode only!). There is still the message "unable to load driver: rockchip_dri.so" but according to this reply, it's normal:
Quote
This error message is caused by the userspace application try to use the OpenGL API.

On the Tinker Board, only OpenGL ES is hardware accelerated. The regular OpenGL runs in software mode only.



Pages: [1] 2 3 ... 72