Accelerating Virtual Texturing Using CUDA

نویسندگان

  • Charles-Frederik Hollemeersch
  • Bart Pieters
  • Peter Lambert
  • Rik Van de Walle
چکیده

Virtual texturing is a promising technique to improve the visual quality of real-time rendering applications such as simulations and games. By selectively loading parts of the texture dataset, virtual texturing allows for higher resolution texturing than possible with traditional texturing techniques. However, virtual texturing also adds a significant overhead to the renderer. First, there is the task of determining the working set of the current frame. Secondly, there is the need to upload the streamed data. Furthermore, the data that needs to be uploaded may also not be available in the desired texture format. Hence, the data will need to be converted to this format. Although virtual texturing subsystems are expensive, they lend themselves well to data parallel processing. The fact that much of this data will need to be further processed on the GPU by the renderer makes implementing these tasks on the GPU even more attractive since the data will be available close to its end use. In this poster we present how we implemented some of the components needed for virtual texturing using CUDA. They work together with our OpenGL based renderer, to offer a complete virtual texturing system. The first such component we implemented using CUDA is the resolver, the component that determines the frame’s working set. This subsystem works by analyzing a rendered buffer that contains the texture pages needed by the corresponding pixel. This buffer is prepared using a traditional OpenGL based renderer and a special pixel shader. We then analyse this buffer using a CUDA kernel that determines what pages are present in the buffer and masks the pages used by the current frame. A second kernel then packs the list of used pages. This way, a compact list of pages is acquired that can then be asynchronously transferred to the CPU. On the CPU side, these pages are then presented to a LRU based cache manager who replaces pages and places new loading requests. Our system allows an efficient working set determination without any unnecessary CPU to GPU transfers or synchronizations. The second component of our system implemented in CUDA is the page uploading pipeline. When pages are loaded by our system, they are decompressed to RGBA data and placed in pagelocked memory by a separate loading thread. They are then asynchronously transferred to the GPU without further CPU intervention. Once the pages are available on the GPU, mipmaps are then generated for the uploaded pages. These mipmaps will be used by our renderer to achieve trilinear texture filtering. After the mipmaps are generated, a second kernel is invoked that compresses the pages using a real-time DXT encoder. Finally, the pages are transferred to the OpenGL cache texture for use by our renderer. To optimize the page uploading process even further, we make use of multiple streams so CPU to GPU uploading and DXT compression can run in parallel. From our results, we can conclude that CUDA based working set determination and page uploading, together with OpenGL based rendering and page translation table generation, allow high quality, filtered, virtual texturing to be easily and efficiently implemented on today's hardware.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Accelerating high-order WENO schemes using two heterogeneous GPUs

A double-GPU code is developed to accelerate WENO schemes. The test problem is a compressible viscous flow. The convective terms are discretized using third- to ninth-order WENO schemes and the viscous terms are discretized by the standard fourth-order central scheme. The code written in CUDA programming language is developed by modifying a single-GPU code. The OpenMP library is used for parall...

متن کامل

A virtual machine model for accelerating relational database joins using a general purpose GPU

We demonstrate a speedup for database joins using a general purpose graphics processing unit (GPGPU). The technique is novel in that it operates on an SQL virtual machine model developed using CUDA. The implementation compiles an SQL statement to instructions of the virtual machine that are then executed in parallel on the GPU. We use the threedimensional structure of the CUDA grid and thread m...

متن کامل

Accelerating SQL Database Operations on a GPU with CUDA: Extended Results

Prior work has shown dramatic acceleration for various database operations on GPUs, but only using primitives that are not part of conventional database languages such as SQL. This paper implements a subset of the SQLite virtual machine directly on the GPU, accelerating SQL queries by executing in parallel on GPU hardware. This dramatically reduces the effort required to achieve GPU acceleratio...

متن کامل

Accelerating Anisotropic Mesh Adaptivity on nVIDIA's CUDA Using Texture Interpolation

Anisotropic mesh smoothing is used to generate optimised meshes for Computational Fluid Dynamics (CFD). Adapting the size and shape of elements in an unstructured mesh to a specification encoded in a metric tensor field is done by relocating mesh vertices. This computationally intensive task can be accelerated by engaging nVIDIA’s CUDAenabled GPUs. This article describes the algorithmic backgro...

متن کامل

Technical Report: GIT-CERCS-09-06 A Characterization and Analysis of GPGPU Kernels

General purpose application development for GPUs (GPGPU) has recently gained momentum as a cost-effective approach for accelerating dataand compute-intensive applications, pushed to the forefront by the introduction of Cbased programming environments such as NVIDIA’s CUDA, [1], OpenCL [2], and Intel’s Ct [3]. While significant effort has been focused on developing and evaluating applications an...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009