Far Cry uses many DirectX 9 features like shader models 2.x/3.0, geometry instancing, and floating-point render targets. To consolidate multiple lights into one pass, the developers wanted to use dynamic flow control in shaders but this was not possible in DX9. Instead, they used loop unrolling and precompiled shaders for different light combinations to avoid dynamic branching penalties. Geometry instancing was used to reduce vegetation rendering costs by submitting multiple instances in one draw call.
Seeing with Python presented at PyCon AU 2014Mark Rees
This document discusses the history and current state of computer vision. It begins with definitions of computer vision from the 1980s, focusing on machine vision and automatically analyzing images. It then provides a 2014 definition that emphasizes duplicating human vision abilities through electronic image perception and understanding using models from various fields. The document notes computer vision involves more than just image capture, including image processing, algorithm development, and display control. It also lists and briefly describes several popular Python libraries for computer vision tasks, such as PIL, Scipy ndimage, Mahotas, PCV, SimpleCV, and OpenCV. It concludes with resources for learning more about computer vision and Python.
This document discusses using ray tracing to perform visibility testing of voxel objects. It describes how ray tracing can be used to efficiently determine which voxel objects are visible without needing to render everything like with traditional occlusion culling. The key steps are:
1. Create a ray tracing buffer in GPU memory
2. Trace rays from pixels into a KD-tree of voxel objects to find the closest visible object
3. Record the object IDs in the buffer
This approach is shown to perform faster than CPU occlusion culling by implementing it using CUDA on the GPU. Testing finds it can render frames at over 60 FPS even with large voxel worlds containing 50,000+ objects.
Realtime Per Face Texture Mapping (PTEX)basisspace
This presentation shows the original method for implementing Per-Face Texture Mapping (PTEX) in real-time on commodity hardware. PTEX is used throughout the film industry to handle texture seams robustly while simultaneously easing artist workflow.
The document describes the architecture of a stream processing engine. It uses a layered architecture with different layers handling tasks like stream processing, buffer management, and disk I/O. Tuples are stored in continuous memory using pages, with bitmaps tracking the state of each tuple. The buffer layer provides an interface to allocate and manage memory pages for tuples and bitmaps through structures like page lists, hash tables, and buffers. This allows tuples to be efficiently inserted, queried, and deleted from memory.
[JavaOne 2011] Models for Concurrent ProgrammingTobias Lindaaker
The document discusses models for concurrent programming. It summarizes common misconceptions about threads and concurrency, and outlines some of the core abstractions and tools available in Java for writing concurrent programs, including threads, monitors, volatile variables, java.util.concurrent classes like ConcurrentHashMap, and java.util.concurrent.locks classes like ReentrantLock. It also discusses some models not currently supported in Java like parallel arrays, transactional memory, actors, and Clojure's approach to concurrency using immutable data structures, refs, and atoms.
OpenGL 4.4 provides new features for accelerating scenes with many objects, which are typically found in professional visualization markets. This talk will provide details on the usage of the features and their effect on real-life models. Furthermore we will showcase how more work for rendering a scene can be off-loaded to the GPU, such as efficient occlusion culling or matrix calculations.
Video presentation here: http://on-demand.gputechconf.com/gtc/2014/video/S4379-opengl-44-scene-rendering-techniques.mp4
Anil Thomas dives deep into the field of Deep Learning and focuses on object recognition. This talk will start with a general overview of how to use neon, Convolutional Neural Networks (CNN) and applying neon to an object recognition Kaggle problem. The talk is followed by a workshop highlighting neon, an open source python based deep learning framework that has been built from the ground up for speed and ease of use.
Seeing with Python presented at PyCon AU 2014Mark Rees
This document discusses the history and current state of computer vision. It begins with definitions of computer vision from the 1980s, focusing on machine vision and automatically analyzing images. It then provides a 2014 definition that emphasizes duplicating human vision abilities through electronic image perception and understanding using models from various fields. The document notes computer vision involves more than just image capture, including image processing, algorithm development, and display control. It also lists and briefly describes several popular Python libraries for computer vision tasks, such as PIL, Scipy ndimage, Mahotas, PCV, SimpleCV, and OpenCV. It concludes with resources for learning more about computer vision and Python.
This document discusses using ray tracing to perform visibility testing of voxel objects. It describes how ray tracing can be used to efficiently determine which voxel objects are visible without needing to render everything like with traditional occlusion culling. The key steps are:
1. Create a ray tracing buffer in GPU memory
2. Trace rays from pixels into a KD-tree of voxel objects to find the closest visible object
3. Record the object IDs in the buffer
This approach is shown to perform faster than CPU occlusion culling by implementing it using CUDA on the GPU. Testing finds it can render frames at over 60 FPS even with large voxel worlds containing 50,000+ objects.
Realtime Per Face Texture Mapping (PTEX)basisspace
This presentation shows the original method for implementing Per-Face Texture Mapping (PTEX) in real-time on commodity hardware. PTEX is used throughout the film industry to handle texture seams robustly while simultaneously easing artist workflow.
The document describes the architecture of a stream processing engine. It uses a layered architecture with different layers handling tasks like stream processing, buffer management, and disk I/O. Tuples are stored in continuous memory using pages, with bitmaps tracking the state of each tuple. The buffer layer provides an interface to allocate and manage memory pages for tuples and bitmaps through structures like page lists, hash tables, and buffers. This allows tuples to be efficiently inserted, queried, and deleted from memory.
[JavaOne 2011] Models for Concurrent ProgrammingTobias Lindaaker
The document discusses models for concurrent programming. It summarizes common misconceptions about threads and concurrency, and outlines some of the core abstractions and tools available in Java for writing concurrent programs, including threads, monitors, volatile variables, java.util.concurrent classes like ConcurrentHashMap, and java.util.concurrent.locks classes like ReentrantLock. It also discusses some models not currently supported in Java like parallel arrays, transactional memory, actors, and Clojure's approach to concurrency using immutable data structures, refs, and atoms.
OpenGL 4.4 provides new features for accelerating scenes with many objects, which are typically found in professional visualization markets. This talk will provide details on the usage of the features and their effect on real-life models. Furthermore we will showcase how more work for rendering a scene can be off-loaded to the GPU, such as efficient occlusion culling or matrix calculations.
Video presentation here: http://on-demand.gputechconf.com/gtc/2014/video/S4379-opengl-44-scene-rendering-techniques.mp4
Anil Thomas dives deep into the field of Deep Learning and focuses on object recognition. This talk will start with a general overview of how to use neon, Convolutional Neural Networks (CNN) and applying neon to an object recognition Kaggle problem. The talk is followed by a workshop highlighting neon, an open source python based deep learning framework that has been built from the ground up for speed and ease of use.
GDC talk on how to render Per-Face Texture Mapping (PTEX) datasets on commodity GPUs in Realtime in a much simpler fashion than the earlier proposed techniques. This method is heavily suitable for real time consumption, and can be altered to support other texture techniques.
This document discusses parallel computing and cloud computing. It describes how compute-intensive bioinformatics tasks like OTU picking that take weeks on a desktop can be accelerated by distributing the workload across many processors. Cloud computing provides pay-as-you-go access to large compute clusters without the overhead of maintaining physical hardware. Public clouds like Amazon allow users to provision virtual machines for running analyses and terminate them when finished.
The document discusses fingerprint representations of chemical structures that can be used for tasks like searching, prediction, and clustering. It provides examples of generating, reading, manipulating, and comparing fingerprints in R using the fingerprint package. Fingerprints allow efficient comparison of large collections of molecules through bit vector representations. The document also discusses using fingerprints for predictive modeling of compound properties from high-throughput screening data and analyzing results.
This document provides recommendations for optimizing DirectX 11 performance. It separates the graphics pipeline process into offline and runtime stages. For the offline stage, it recommends creating resources like buffers, textures and shaders on multiple threads. For the runtime stage, it suggests culling unused objects, minimizing state changes, and pushing commands to the driver quickly. It also provides tips for updating dynamic resources efficiently and grouping related constants together. The goal is to keep the CPU and GPU pipelines fully utilized for maximum performance.
Data-oriented design (DOD) focuses on how data is accessed and transformed, rather than how code is organized. This improves performance by minimizing cache misses and allowing better utilization of parallelism. The document provides an example comparing an object-oriented design (OOD) approach that stores related data together in objects, resulting in scattered memory access and many cache misses, versus a DOD approach that groups together data that is accessed together, resulting in fewer cache misses and faster performance.
Presentation from DICE Coder's Day (2010 November) by Johan Torp:
This talk is about making object-oriented code more cache-friendly and how we can incrementally move towards parallelizable data-oriented designs. Filled with production code examples from Frostbite’s pathfinding implementation.
Java Garbage Collection, Monitoring, and TuningCarol McDonald
The document discusses Java garbage collection. It explains that garbage collection automatically reclaims memory from objects that are no longer reachable to avoid memory leaks. It describes different garbage collection algorithms and strategies like generational and incremental garbage collection. It also discusses best practices and myths around memory management in Java.
PyTorch crash course: Introduction to PyTorch deep learning framework and step by step guide to configuring PyCharm for using a remote server for implementing deep learning, plus a summary of Linux's most relevant commands.
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...ozlael ozlael
그래픽 최적화를 위해서 필수로 알아야하는 드로우콜과 배칭을 심화하여 다룹니다. 드로우콜의 개념, Batch와 SetPass Call의 차이, 드로우콜 감소 방법 등등 기초 개념부터 실무적인 깊이까지 다룹니다. 기반지식 여부 상관 없이 모두 들으실 수 있습니다. 특히 아티스트와 프로그래머에게 도움이 될 것입니다.
Tomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłemSegFaultConf
Programowanie reaktywne umożliwia wiele niesamowitych rzeczy. Skalowalne systemy potrzebujące zaledwie ułamka mocy obliczeniowej i zasobów w porównaniu z klasyczną, blokującą aplikacją? Pewnie. Responsywny kod, ogromna przepustowość, niskie czasy odpowiedzi? Bez problemu. Niewielki narzut na pamięć i system? Z definicji. Dlaczego by nie kochać programowania reaktywnego i reaktywnych systemów? Podzielę się z Wami moimi doświadczeniami, kiedy reaktywność popłaca, ale zwłaszcza kiedy jest podejście przeinżynierowanym. Jakie są ukryte koszty i typowe błędy? Jak przekonać swój zespół do rozpoczęcia przygody z reaktywnością? I jeszcze ważniejsze, jak dostrzec, że ten styl architektoniczny to ślepa uliczka, więcej kłopotu niż pożytku? Na konkretnych przykładach.
FlameWorks presentation from NVIDIA GTC 2014.
Learn how to add volumetric effects to your game engine - smoke, fire and explosions that are interactive, more realistic, and can actually render faster than traditional sprite-based techniques. Volumetrics remain one of the last big differences between real-time and offline visual effects. In this talk we will show how volumetric effects are now practical on current GPU hardware. We will describe several new simulation and rendering techniques, including new solvers, combustion models, optimized ray marching and shadows, which together can make volumetric effects a practical alternative to particle-based methods for game effects.
Gdc2011 direct x 11 rendering in battlefield 3drandom
The document discusses rendering techniques used in the Frostbite 2 game engine for Battlefield 3, including deferred shading with tile-based lighting computed using compute shaders. It describes how this approach reduces overdraw and bandwidth compared to traditional deferred rendering. It also discusses techniques for displacement mapping terrains, adaptive multi-sample anti-aliasing, and direct stereo 3D rendering support.
Spark and Shark: Lightning-Fast Analytics over Hadoop and Hive DataJetlore
Spark is an open source cluster computing framework that can outperform Hadoop by 30x through a combination of in-memory computation and a richer execution engine. Shark is a port of Apache Hive onto Spark, which provides a similar speedup for SQL queries, allowing interactive exploration of data in existing Hive warehouses. This talk will cover how both Spark and Shark are being used at various companies to accelerate big data analytics, the architecture of the systems, and where they are heading. We will also discuss the next major feature we are developing, Spark Streaming, which adds support for low-latency stream processing to Spark, giving users a unified interface for batch and real-time analytics.
This module explains several additional important concepts. These include properties of QObjects, data types, QString and various list types.
Special classes in Qt provide even more convenient APIs if you want to save settings in the right way for the target platform.
At the end, a guide walks you through what you need to know about embedding files and resources into your application.
A three-part presentation on the Swift programming language:
• An introduction to Swift for Objective-C developers
• Changes in Swift 2
• What's coming in Swift 2.2 & 3.0
Windows to reality getting the most out of direct3 d 10 graphics in your gameschangehee lee
The document discusses key areas for optimizing Direct3D 10 graphics performance in games, including using the debug layer, reducing draw calls, efficiently updating constant buffers, managing state objects, and following strict shader linkage rules. It provides tips such as splitting constants by frequency of update into multiple buffers to avoid redundant uploads, pre-creating all possible state objects, and using instancing to draw similar objects with a single draw call.
Building Reliable Cloud Storage with Riak and CloudStack - Andy Gross, Chief ...buildacloud
About Basho: Basho makes and distributes Riak CS. Built on Riak, Basho's opensource, scalable datastore used by thousands in production, CS is made for companies that need large file storage that can't go down.
About the speaker: Andy Gross, Basho's Chief Architect, will take you on a tour of RiakCS, talk about how and why Basho built it, and the architecture that underpins it. He'll also highlight various uses case featuring Fortune500 companies who rely on Riak CS.
PHP Backends for Real-Time User Interaction using Apache Storm.DECK36
Engaging users in real-time is the topic of our times. Whether it’s a game, a shop, or a content-network, the aim remains the same: providing a personalized experience. In this workshop we will look under the hood of Apache Storm and lay a firm foundation on how to use it with PHP. By that, you can leverage your existing codebase and PHP expertise for an entirely new world: real-time analytics and business logic working on message streams. During the course of the workshop, we will introduce Apache Storm and take a look at all of its components. We will then skyrocket the applicability of Storm by showing you how to implement their components with PHP. All exercises will be conducted using an example project, the infamous and most exhilarating lolcat kitten game ever conceived: Plan 9 From Outer Kitten. In order to follow the hands-on excercises, you will need a development VM prepared by us with all relevant system components and our project repositories. To make the workshop experience as smooth as possible for all participants, please bring a prepared computer to the workshop, as there will be no time to deal with installation and setup issues. Please download all prerequisites and install them as described: VM, Plan 9 webapp, Plan 9 storm backend, (Tutorial: https://github.com/DECK36/plan9_workshop_tutorial ).
GDC talk on how to render Per-Face Texture Mapping (PTEX) datasets on commodity GPUs in Realtime in a much simpler fashion than the earlier proposed techniques. This method is heavily suitable for real time consumption, and can be altered to support other texture techniques.
This document discusses parallel computing and cloud computing. It describes how compute-intensive bioinformatics tasks like OTU picking that take weeks on a desktop can be accelerated by distributing the workload across many processors. Cloud computing provides pay-as-you-go access to large compute clusters without the overhead of maintaining physical hardware. Public clouds like Amazon allow users to provision virtual machines for running analyses and terminate them when finished.
The document discusses fingerprint representations of chemical structures that can be used for tasks like searching, prediction, and clustering. It provides examples of generating, reading, manipulating, and comparing fingerprints in R using the fingerprint package. Fingerprints allow efficient comparison of large collections of molecules through bit vector representations. The document also discusses using fingerprints for predictive modeling of compound properties from high-throughput screening data and analyzing results.
This document provides recommendations for optimizing DirectX 11 performance. It separates the graphics pipeline process into offline and runtime stages. For the offline stage, it recommends creating resources like buffers, textures and shaders on multiple threads. For the runtime stage, it suggests culling unused objects, minimizing state changes, and pushing commands to the driver quickly. It also provides tips for updating dynamic resources efficiently and grouping related constants together. The goal is to keep the CPU and GPU pipelines fully utilized for maximum performance.
Data-oriented design (DOD) focuses on how data is accessed and transformed, rather than how code is organized. This improves performance by minimizing cache misses and allowing better utilization of parallelism. The document provides an example comparing an object-oriented design (OOD) approach that stores related data together in objects, resulting in scattered memory access and many cache misses, versus a DOD approach that groups together data that is accessed together, resulting in fewer cache misses and faster performance.
Presentation from DICE Coder's Day (2010 November) by Johan Torp:
This talk is about making object-oriented code more cache-friendly and how we can incrementally move towards parallelizable data-oriented designs. Filled with production code examples from Frostbite’s pathfinding implementation.
Java Garbage Collection, Monitoring, and TuningCarol McDonald
The document discusses Java garbage collection. It explains that garbage collection automatically reclaims memory from objects that are no longer reachable to avoid memory leaks. It describes different garbage collection algorithms and strategies like generational and incremental garbage collection. It also discusses best practices and myths around memory management in Java.
PyTorch crash course: Introduction to PyTorch deep learning framework and step by step guide to configuring PyCharm for using a remote server for implementing deep learning, plus a summary of Linux's most relevant commands.
그래픽 최적화로 가...가버렷! (부제: 배치! 배칭을 보자!) , Batch! Let's take a look at Batching! -...ozlael ozlael
그래픽 최적화를 위해서 필수로 알아야하는 드로우콜과 배칭을 심화하여 다룹니다. 드로우콜의 개념, Batch와 SetPass Call의 차이, 드로우콜 감소 방법 등등 기초 개념부터 실무적인 깊이까지 다룹니다. 기반지식 여부 상관 없이 모두 들으실 수 있습니다. 특히 아티스트와 프로그래머에게 도움이 될 것입니다.
Tomasz Nurkiewicz - Programowanie reaktywne: czego się nauczyłemSegFaultConf
Programowanie reaktywne umożliwia wiele niesamowitych rzeczy. Skalowalne systemy potrzebujące zaledwie ułamka mocy obliczeniowej i zasobów w porównaniu z klasyczną, blokującą aplikacją? Pewnie. Responsywny kod, ogromna przepustowość, niskie czasy odpowiedzi? Bez problemu. Niewielki narzut na pamięć i system? Z definicji. Dlaczego by nie kochać programowania reaktywnego i reaktywnych systemów? Podzielę się z Wami moimi doświadczeniami, kiedy reaktywność popłaca, ale zwłaszcza kiedy jest podejście przeinżynierowanym. Jakie są ukryte koszty i typowe błędy? Jak przekonać swój zespół do rozpoczęcia przygody z reaktywnością? I jeszcze ważniejsze, jak dostrzec, że ten styl architektoniczny to ślepa uliczka, więcej kłopotu niż pożytku? Na konkretnych przykładach.
FlameWorks presentation from NVIDIA GTC 2014.
Learn how to add volumetric effects to your game engine - smoke, fire and explosions that are interactive, more realistic, and can actually render faster than traditional sprite-based techniques. Volumetrics remain one of the last big differences between real-time and offline visual effects. In this talk we will show how volumetric effects are now practical on current GPU hardware. We will describe several new simulation and rendering techniques, including new solvers, combustion models, optimized ray marching and shadows, which together can make volumetric effects a practical alternative to particle-based methods for game effects.
Gdc2011 direct x 11 rendering in battlefield 3drandom
The document discusses rendering techniques used in the Frostbite 2 game engine for Battlefield 3, including deferred shading with tile-based lighting computed using compute shaders. It describes how this approach reduces overdraw and bandwidth compared to traditional deferred rendering. It also discusses techniques for displacement mapping terrains, adaptive multi-sample anti-aliasing, and direct stereo 3D rendering support.
Spark and Shark: Lightning-Fast Analytics over Hadoop and Hive DataJetlore
Spark is an open source cluster computing framework that can outperform Hadoop by 30x through a combination of in-memory computation and a richer execution engine. Shark is a port of Apache Hive onto Spark, which provides a similar speedup for SQL queries, allowing interactive exploration of data in existing Hive warehouses. This talk will cover how both Spark and Shark are being used at various companies to accelerate big data analytics, the architecture of the systems, and where they are heading. We will also discuss the next major feature we are developing, Spark Streaming, which adds support for low-latency stream processing to Spark, giving users a unified interface for batch and real-time analytics.
This module explains several additional important concepts. These include properties of QObjects, data types, QString and various list types.
Special classes in Qt provide even more convenient APIs if you want to save settings in the right way for the target platform.
At the end, a guide walks you through what you need to know about embedding files and resources into your application.
A three-part presentation on the Swift programming language:
• An introduction to Swift for Objective-C developers
• Changes in Swift 2
• What's coming in Swift 2.2 & 3.0
Windows to reality getting the most out of direct3 d 10 graphics in your gameschangehee lee
The document discusses key areas for optimizing Direct3D 10 graphics performance in games, including using the debug layer, reducing draw calls, efficiently updating constant buffers, managing state objects, and following strict shader linkage rules. It provides tips such as splitting constants by frequency of update into multiple buffers to avoid redundant uploads, pre-creating all possible state objects, and using instancing to draw similar objects with a single draw call.
Building Reliable Cloud Storage with Riak and CloudStack - Andy Gross, Chief ...buildacloud
About Basho: Basho makes and distributes Riak CS. Built on Riak, Basho's opensource, scalable datastore used by thousands in production, CS is made for companies that need large file storage that can't go down.
About the speaker: Andy Gross, Basho's Chief Architect, will take you on a tour of RiakCS, talk about how and why Basho built it, and the architecture that underpins it. He'll also highlight various uses case featuring Fortune500 companies who rely on Riak CS.
PHP Backends for Real-Time User Interaction using Apache Storm.DECK36
Engaging users in real-time is the topic of our times. Whether it’s a game, a shop, or a content-network, the aim remains the same: providing a personalized experience. In this workshop we will look under the hood of Apache Storm and lay a firm foundation on how to use it with PHP. By that, you can leverage your existing codebase and PHP expertise for an entirely new world: real-time analytics and business logic working on message streams. During the course of the workshop, we will introduce Apache Storm and take a look at all of its components. We will then skyrocket the applicability of Storm by showing you how to implement their components with PHP. All exercises will be conducted using an example project, the infamous and most exhilarating lolcat kitten game ever conceived: Plan 9 From Outer Kitten. In order to follow the hands-on excercises, you will need a development VM prepared by us with all relevant system components and our project repositories. To make the workshop experience as smooth as possible for all participants, please bring a prepared computer to the workshop, as there will be no time to deal with installation and setup issues. Please download all prerequisites and install them as described: VM, Plan 9 webapp, Plan 9 storm backend, (Tutorial: https://github.com/DECK36/plan9_workshop_tutorial ).
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHackito Ergo Sum
This document summarizes an approach to auditing the Adobe Shockwave file format and verifying vulnerabilities. It describes how the authors:
1) Encountered difficulties reversing the Shockwave memory manager using traditional debugging tools.
2) Developed a technique using dynamic binary instrumentation to hook the Shockwave file read function and search read buffers for fuzzed file data.
3) Further refined their approach by directly hooking the file read function in MSVCR71.dll, allowing the technique to be reused for other projects.
Unraveling mysteries of the Universe at CERN, with OpenStack and HadoopPiotr Turek
I will talk about the challenges faced, lessons learned and fun I had while reinventing the way offline data analysis is done at one of LHC (Large Hadron Collider) experiments. A journey, which took us to another land: of contemporary Big Data stack, and which finally married those two. Did it make any sense in the end? Come and you will know.
Among other things you will learn:
• the why, what and how of data analysis at CERN
• why latency variability in large distributed systems matters (literally ;))
• why using C++ as a scripting language is both the best and the worst idea ever
• how to implement a reliable Hadoop cluster provisioning mechanism on OpenStack
• how to marry a huge data analysis framework written in C++, with Hadoop 2
• what is the moral of this story
Embrace Sparsity At Web Scale: Apache Spark MLlib Algorithms Optimization For...Jen Aman
This document discusses optimizations made to Apache Spark MLlib algorithms to better support sparse data at large scale. It describes how KMeans, linear methods, and other ML algorithms were modified to use sparse vector representations to reduce memory usage and improve performance when working with sparse data, including optimizations made for clustering large, high-dimensional datasets. The optimizations allow these algorithms to be applied to much larger sparse datasets and high-dimensional problems than was previously possible with MLlib.
This document discusses the process of rebalancing in Voldemort. It begins by outlining the high-level steps taken, including getting the current and target cluster states, planning partition movements in batches, changing cluster metadata and rebalancing states, migrating data with redundancy checks, and rolling back changes if failures occur. Key aspects like maintaining consistency through proxying requests and handling failure scenarios are also summarized.
This document provides an overview and introduction to key MongoDB concepts including:
- Replication which allows for failover, backups, and high availability through asynchronous replication across replica sets.
- Sharding which provides horizontal scalability by automatically distributing and balancing data across multiple shards in a cluster.
- Consistency and durability models including eventual consistency and different write acknowledgement options for ensuring data is safely written.
- Flexibility in data modeling through embedding and linking of related data as well as the use of JSON which maps easily to objects.
This document discusses various exploit techniques, mitigations against exploits, and ways to bypass mitigations. It covers popular exploitation methods like stack-based buffer overflows, heap overflows, and return-oriented programming (ROP). It also outlines key mitigations like stack cookies, data execution prevention (DEP), address space layout randomization (ASLR), and structured exception handler overwrite protection (SEHOP). Finally, it examines techniques for bypassing protections like avoiding ASLR, memory leaks to disclose addresses, and using ROP chains combined with memory leaks to bypass DEP and ASLR. The document provides a technical overview of the exploit-mitigation landscape.
Tomas Doran presented on their implementation of Logstash at TIM Group to process over 55 million messages per day. Their applications are all Java/Scala/Clojure and they developed their own library to send structured log events as JSON to Logstash using ZeroMQ for reliability. They index data in Elasticsearch and use it for metrics, alerts and dashboards but face challenges with data growth.
This document discusses techniques for making 3D games with Molehill, including:
- Using dual quaternions for character animation to allow more bones within shader constant limits.
- The Frima 3D file format which optimizes size and processing for Molehill games.
- Texturing using compressed Adobe Texture Format files.
- Dividing particle system work between CPU and GPU for better performance.
- Fake volumetric lights and projected shadows to simulate more advanced lighting.
- Profiling tools like Pix and Intel GPA for debugging GPU performance bottlenecks.
The document summarizes post-exploitation techniques on OSX and iPhone. It describes a technique called "userland-exec" that allows executing applications on OSX without using the kernel. This technique was adapted to work on jailbroken iPhones by injecting a non-signed library and hijacking the dynamic linker (dlopen) to map and link the library. With some additional patches, the authors were able to load an arbitrary non-signed library into the address space of a process on factory iPhones, representing the first reliable way to execute payloads on these devices despite code signing protections.
This talk is one that I gave to the HPTS workshop in Asilomar in 2009. It describes the ideas behind micro-sharding and outlines how Katta can manage micro-shards.
Some builds and spacing are off because this was exported as power point from Keynote.
[Ruxcon 2011] Post Memory Corruption Memory AnalysisMoabi.com
The document introduces PMCMA, a debugger tool that analyzes memory corruption bugs by forcing processes to fork, overwriting memory locations in the offspring processes, and monitoring execution to map exploitable scenarios. PMCMA aims to provide a roadmap for exploitation by identifying vulnerabilities and possible exploitation techniques like truncating function pointers or exploiting 4-byte aligned memory writes. The tool is available online and has received over 10,000 downloads in its first two months.
The document provides information on Caffe layers and networks for image classification tasks. It describes common layers used in convolutional neural networks (CNNs) like Convolution, Pooling, ReLU and InnerProduct. It also discusses popular CNN architectures for datasets such as MNIST, CIFAR-10 and ImageNet and the steps to prepare the data and train these networks in Caffe. Experiments comparing different CNN configurations on a 4-class image dataset show that removal of layers degrades performance, indicating their importance.
Volumetric Lighting for Many Lights in Lords of the FallenBenjamin Glatzel
In this session I’m going to give you an in-depth insight into the design and the implementation of the volumetric lighting system we’ve developed for ‘Lords of the Fallen’. The system allows the simulation of countless volumetric lighting effects in parallel while still being a feasible solution on next-gen consoles.
This presentation was held at the Digital Dragons 2014 conference.
Videos shown during the talk are available here: http://bglatzel.movingblocks.net/publications
The JVM memory model describes how threads in the Java eco-system interact through memory. While the memory model impact on developing for the JVM may not be obvious, it is the cause for certain number of "anomalies" that are, well, by design.
In this presentation we will explore the aspects of the memory model, including things like reordering of instructions, volatile members, monitors, atomics and JIT.
MongoDB: Optimising for Performance, Scale & AnalyticsServer Density
MongoDB is easy to download and run locally but requires some thought and further understanding when deploying to production. At scale, schema design, indexes and query patterns really matter. So does data structure on disk, sharding, replication and data centre awareness. This talk will examine these factors in the context of analytics, and more generally, to help you optimise MongoDB for any scale.
Presented at MongoDB Days London 2013 by David Mytton.
Content Delivery Networks (CDNs) improve user experience by reducing latency, packet loss, and jitter. They also increase scalability and fault tolerance. FirstPoint is a traffic management system that directs users to optimal mirrored websites. It uses topology discovery to cluster nameservers and importance sampling for congestion measurement to map users to the closest mirrors.
The facial nerve, also known as cranial nerve VII, is one of the 12 cranial nerves originating from the brain. It's a mixed nerve, meaning it contains both sensory and motor fibres, and it plays a crucial role in controlling various facial muscles, as well as conveying sensory information from the taste buds on the anterior two-thirds of the tongue.
Exploring the Benefits of Binaural Hearing: Why Two Hearing Aids Are Better T...Ear Solutions (ESPL)
Binaural hearing using two hearing aids instead of one offers numerous advantages, including improved sound localization, enhanced sound quality, better speech understanding in noise, reduced listening effort, and greater overall satisfaction. By leveraging the brain’s natural ability to process sound from both ears, binaural hearing aids provide a more balanced, clear, and comfortable hearing experience. If you or a loved one is considering hearing aids, consult with a hearing care professional at Ear Solutions hearing aid clinic in Mumbai to explore the benefits of binaural hearing and determine the best solution for your hearing needs. Embracing binaural hearing can lead to a richer, more engaging auditory experience and significantly improve your quality of life.
End-tidal carbon dioxide (ETCO2) is the level of carbon dioxide that is released at the end of an exhaled breath. ETCO2 levels reflect the adequacy with which carbon dioxide (CO2) is carried in the blood back to the lungs and exhaled.
Non-invasive methods for ETCO2 measurement include capnometry and capnography. Capnometry provides a numerical value for ETCO2. In contrast, capnography delivers a more comprehensive measurement that is displayed in both graphical (waveform) and numerical form.
Sidestream devices can monitor both intubated and non-intubated patients, while mainstream devices are most often limited to intubated patients.
As Mumbai's premier kidney transplant and donation center, L H Hiranandani Hospital Powai is not just a medical facility; it's a beacon of hope where cutting-edge science meets compassionate care, transforming lives and redefining the standards of kidney health in India.
TEST BANK FOR Health Assessment in Nursing 7th Edition by Weber Chapters 1 - ...rightmanforbloodline
TEST BANK FOR Health Assessment in Nursing 7th Edition by Weber Chapters 1 - 34.
TEST BANK FOR Health Assessment in Nursing 7th Edition by Weber Chapters 1 - 34.
TEST BANK FOR Health Assessment in Nursing 7th Edition by Weber Chapters 1 - 34.
Mental Health and well-being Presentation. Exploring innovative approaches and strategies for enhancing mental well-being. Discover cutting-edge research, effective strategies, and practical methods for fostering mental well-being.
Sectional dentures for microstomia patients.pptxSatvikaPrasad
Microstomia, characterized by an abnormally small oral aperture, presents significant challenges in prosthodontic treatment, including limited access for examination, difficulties in impression making, and challenges with prosthesis insertion and removal. To manage these issues, customized impression techniques using sectional trays and elastomeric materials are employed. Prostheses may be designed in segments or with flexible materials to facilitate handling. Minimally invasive procedures and the use of digital technologies can enhance patient comfort. Education and training for patients on prosthesis care and maintenance are crucial for compliance. Regular follow-up and a multidisciplinary approach, involving collaboration with other specialists, ensure comprehensive care and improved quality of life for microstomia patients.
Michigan HealthTech Market Map 2024. Includes 7 categories: Policy Makers, Academic Innovation Centers, Digital Health Providers, Healthcare Providers, Payers / Insurance, Device Companies, Life Science Companies, Innovation Accelerators. Developed by the Michigan-Israel Business Accelerator
At Malayali Kerala Spa Ajman, Full Service includes individualized care for every client. We specifically design each massage session for the individual needs of the client. Our therapists are always willing to adjust the treatments based on the client's instruction and feedback. This guarantees that every client receives the treatment they expect.
By offering a variety of massage services, our Ajman Spa Massage Center can tackle physical, mental, and emotional illnesses. In addition, efficient identification of specific health conditions and designing treatment plans accordingly can significantly enhance the quality of massaging.
At Malayali Kerala Spa Ajman, we firmly believe that everyone should have the option to experience top-quality massage services regularly. To achieve that goal we offer cheap massage services in Ajman.
If you are interested in experiencing transformative massage treatment at Malayali Kerala Spa Ajman, you can use our Ajman Massage Center WhatsApp Number to schedule your next massage session.
Contact @ +971 529818279
Visit @ https://malayalikeralaspaajman.com/
1. Far Cry and DirectXFar Cry and DirectX
Carsten WenzelCarsten Wenzel
2. Far Cry uses the latest DX9 featuresFar Cry uses the latest DX9 features
• Shader Models 2.x / 3.0Shader Models 2.x / 3.0
- Except for vertex textures and dynamicExcept for vertex textures and dynamic
flow controlflow control
• Geometry InstancingGeometry Instancing
• Floating-point render targetsFloating-point render targets
3. Dynamic flow control in PSDynamic flow control in PS
• To consolidate multiple lights into one pass,To consolidate multiple lights into one pass,
we ideally would want to do something likewe ideally would want to do something like
this…this…
float3float3 finalColfinalCol == 0;0;
float3float3 diffuseColdiffuseCol == tex2Dtex2D( diffuseMap, IN.diffuseUV.xy );( diffuseMap, IN.diffuseUV.xy );
float3float3 normalnormal == mulmul( IN.tangentToWorldSpace,( IN.tangentToWorldSpace,
tex2Dtex2D( normalMap, IN.bumpUV.xy ).xyz );( normalMap, IN.bumpUV.xy ).xyz );
forfor(( intint ii == 0; i < cNumLights; i++ )0; i < cNumLights; i++ )
{{
float3float3 lightCollightCol = LightColor[ i ];= LightColor[ i ];
float3float3 lightVeclightVec == normalizenormalize( cLightPos[ i ].xyz –( cLightPos[ i ].xyz –
IN.pos.xyz );IN.pos.xyz );
// …// …
// Attenuation, Specular, etc. calculated via// Attenuation, Specular, etc. calculated via
if( const_boolean )if( const_boolean )
// …// …
floatfloat nDotLnDotL == saturatesaturate(( dotdot( lightVec.xyz, normal ) );( lightVec.xyz, normal ) );
final += lightCol.xyz * diffuseCol.xyz * nDotL * atten;final += lightCol.xyz * diffuseCol.xyz * nDotL * atten;
}}
return(return( float4float4( finalCol, 1 ) );( finalCol, 1 ) );
4. Dynamic flow control in PSDynamic flow control in PS
• Welcome to the real world…Welcome to the real world…
– Dynamic indexing only allowed on inputDynamic indexing only allowed on input
registers; prevents passing light data viaregisters; prevents passing light data via
constant registers and index them in loopconstant registers and index them in loop
– Passing light info via input registers notPassing light info via input registers not
feasible as there are not enough of them (onlyfeasible as there are not enough of them (only
10)10)
– Dynamic branching is not freeDynamic branching is not free
5. Loop unrollingLoop unrolling
• We chose not to use dynamic branching and loopsWe chose not to use dynamic branching and loops
• Used static branching and unrolled loops insteadUsed static branching and unrolled loops instead
• Works well with Far Cry’s existing shader frameworkWorks well with Far Cry’s existing shader framework
• Shaders are precompiled for different light masksShaders are precompiled for different light masks
– 0-4 dynamic light sources per pass0-4 dynamic light sources per pass
– 3 different light types (spot, omni, directional)3 different light types (spot, omni, directional)
– 2 modification types per light (specular only, occlusion map)2 modification types per light (specular only, occlusion map)
• Can result in over 160 instructions after loop unrollingCan result in over 160 instructions after loop unrolling
when using 4 lightswhen using 4 lights
– Too long for ps_2_0Too long for ps_2_0
– Just fine for ps_2_a, ps_2_b and ps_3_0!Just fine for ps_2_a, ps_2_b and ps_3_0!
• To avoid run time stalls, use a pre-warmed shader cacheTo avoid run time stalls, use a pre-warmed shader cache
6. How the shader cache worksHow the shader cache works
• Specific shader depends on:Specific shader depends on:
1)1) Material typeMaterial type
(e.g. skin, phong, metal)(e.g. skin, phong, metal)
2)2) Material usage flagsMaterial usage flags
(e.g. bump-mapped, specular)(e.g. bump-mapped, specular)
3)3) Specific environmentSpecific environment
(e.g. light mask, fog)(e.g. light mask, fog)
7. How the shader cache worksHow the shader cache works
• Cache access:Cache access:
– Object to render already has shader handles? Use those!Object to render already has shader handles? Use those!
– Otherwise try to find the shader in memoryOtherwise try to find the shader in memory
– If that fails load from harddiskIf that fails load from harddisk
– If that fails generate VS/PS, store backup on harddiskIf that fails generate VS/PS, store backup on harddisk
– Finally, save shader handles in objectFinally, save shader handles in object
• Not the ideal solution butNot the ideal solution but
– Works reasonably well on existing hardwareWorks reasonably well on existing hardware
– Was easy to integrate without changing assetsWas easy to integrate without changing assets
• For the cache to be efficient…For the cache to be efficient…
– All used combinations of a shader should exist as pre-cached files onAll used combinations of a shader should exist as pre-cached files on
HDHD
• On the fly update causes stalls due to time required for shaderOn the fly update causes stalls due to time required for shader
compilation!compilation!
– However, maintaining the cache can become cumbersomeHowever, maintaining the cache can become cumbersome
8. Loop unrolling – Pros/ConsLoop unrolling – Pros/Cons
• Pros:Pros:
– Speed! Not branching dynamically saves quite a fewSpeed! Not branching dynamically saves quite a few
cyclescycles
– At the time, we found shader switching to be moreAt the time, we found shader switching to be more
efficient than dynamic branchingefficient than dynamic branching
• Cons:Cons:
– Needs sophisticated shader caching, due to number ofNeeds sophisticated shader caching, due to number of
shader combinations per light mask (244 aftershader combinations per light mask (244 after
presorting of combinations)presorting of combinations)
– Shader pre-compilation takes timeShader pre-compilation takes time
– Shader cache for Far Cry 1.3 requires about 430 MBShader cache for Far Cry 1.3 requires about 430 MB
(compressed down to ~23 MB in patch exe)(compressed down to ~23 MB in patch exe)
9. Geometry InstancingGeometry Instancing
• Potentially saves cost ofPotentially saves cost of n-1n-1 draw calls when renderingdraw calls when rendering nn
instances of an objectinstances of an object
• Far Cry uses it mainly to speed up vegetation renderingFar Cry uses it mainly to speed up vegetation rendering
• Per instance attributes:Per instance attributes:
– PositionPosition
– SizeSize
– Bending infoBending info
– Rotation (only if needed)Rotation (only if needed)
• Reduce the number of instance attributes! Two methods:Reduce the number of instance attributes! Two methods:
– Vertex shader constantsVertex shader constants
• Use for objects having more than 100 polygonsUse for objects having more than 100 polygons
– Attribute streamsAttribute streams
• Use for smaller objects (sprites, impostors)Use for smaller objects (sprites, impostors)
10. Instance Attributes in VS ConstantsInstance Attributes in VS Constants
• Best for objects with large numbers ofBest for objects with large numbers of
polygonspolygons
• Put instance index into additional streamPut instance index into additional stream
• UseUse SetStreamSourceFrequencySetStreamSourceFrequency to setupto setup
geometry instancing as follows…geometry instancing as follows…
SetStreamSourceFrequency( geomStream,SetStreamSourceFrequency( geomStream,
D3DSTREAMSOURCE_INDEXEDDATA | numInstances );D3DSTREAMSOURCE_INDEXEDDATA | numInstances );
SetStreamSourceFrequency( instStream,SetStreamSourceFrequency( instStream,
D3DSTREAMSOURCE_INSTANCEDATA | 1 );D3DSTREAMSOURCE_INSTANCEDATA | 1 );
• Be sure to reset the vertex stream frequencyBe sure to reset the vertex stream frequency
once you’re done,once you’re done, SSSF( strNum, 1 )SSSF( strNum, 1 )!!
11. const float4x4 cMatViewProj;
const float4 cPackedInstanceData[ numInstances ];
float4x4 matWorld;
float4x4 matMVP;
int i = IN.InstanceIndex;
matWorld[ 0 ] = float4( cPackedInstanceData[ i ].w, 0, 0,
cPackedInstanceData[ i ].x );
matWorld[ 1 ] = float4( 0, cPackedInstanceData[ i ].w, 0,
cPackedInstanceData[ i ].y );
matWorld[ 2 ] = float4( 0, 0, cPackedInstanceData[ i ].w,
cPackedInstanceData[ i ].z );
matWorld[ 3 ] = float4( 0, 0, 0, 1 );
matMVP = mul( cMatViewProj, matWorld );
OUT.HPosition = mul( matMVP, IN.Position );
VS Snippet to unpack attributes (positionVS Snippet to unpack attributes (position
& size) from VS constants to create& size) from VS constants to create
matMVP and transform vertexmatMVP and transform vertex
12. Instance Attribute StreamsInstance Attribute Streams
• Best for objects with few polygonsBest for objects with few polygons
• Put per instance data into additional streamPut per instance data into additional stream
• Setup vertex stream frequency as before andSetup vertex stream frequency as before and
reset when you’re donereset when you’re done
14. Geometry Instancing – ResultsGeometry Instancing – Results
• Depending on the amount ofDepending on the amount of
vegetation, rendering speedvegetation, rendering speed
increases up to 40% (when heavilyincreases up to 40% (when heavily
draw call limited)draw call limited)
• Allows us to increase sprite distanceAllows us to increase sprite distance
ratio, a nice visual improvement withratio, a nice visual improvement with
only a moderate rendering speed hitonly a moderate rendering speed hit
18. High Dynamic Range RenderingHigh Dynamic Range Rendering
• Uses A16B16G16R16F render targetUses A16B16G16R16F render target
formatformat
• Alpha blending and filtering is essentialAlpha blending and filtering is essential
• Unified solution for post-processingUnified solution for post-processing
• Replaces whole range of post-processingReplaces whole range of post-processing
hacks (glare, flares)hacks (glare, flares)
19. HDR – ImplementationHDR – Implementation
• HDR in Far Cry follows standardHDR in Far Cry follows standard
approachesapproaches
– Kawase’s bloom filtersKawase’s bloom filters
– Reinhard’s tone mapping operatorReinhard’s tone mapping operator
– See DXSDK sampleSee DXSDK sample
• Performance hintPerformance hint
– For post processing try splitting your colorFor post processing try splitting your color
into rg, ba and write them into two MRTs ofinto rg, ba and write them into two MRTs of
format G16R16F. That’s more cacheformat G16R16F. That’s more cache
efficient on some cards.efficient on some cards.
20. Bloom from [Kawase03]Bloom from [Kawase03]
• Repeatedly apply small bRepeatedly apply small blur filterslur filters
• Composite bloom with original imageComposite bloom with original image
– Ideally in HDR space, followed by tone mappingIdeally in HDR space, followed by tone mapping
21. Texture samplingTexture sampling
pointspoints
Pixel being RenderedPixel being Rendered
11stst
passpass
22ndnd
passpass
33rdrd
passpass
From [Kawase03]From [Kawase03]
Increase Filter Size Each PassIncrease Filter Size Each Pass
24. [Reinhard02] – Tone Mapping[Reinhard02] – Tone Mapping
1)1) Calculate scene luminanceCalculate scene luminance
On GPU done by sampling the log()On GPU done by sampling the log()
values, scaling them down to 1x1 andvalues, scaling them down to 1x1 and
calculating the exp()calculating the exp()
2)2) Scale to target averageScale to target average
luminanceluminance αα
3)3) Apply tone mappingApply tone mapping
operatoroperator
• To simulate light adaptation replaceTo simulate light adaptation replace LumLumavgavg in step 2 and 3 by anin step 2 and 3 by an
adapted luminance value which slowly converges towardsadapted luminance value which slowly converges towards LumLumavgavg
• For further information attend Reinhard’s session called “ToneFor further information attend Reinhard’s session called “Tone
Reproduction In Interactive Applications” this Friday, March 11 atReproduction In Interactive Applications” this Friday, March 11 at
10:30am10:30am
25. HDR – Watch outHDR – Watch out
• Currently no FSAACurrently no FSAA
• Extremely fill rate hungryExtremely fill rate hungry
• Needs support for float buffer blendingNeeds support for float buffer blending
• HDR-aware productionHDR-aware production11
::
– Light mapsLight maps
– SkyboxSkybox
1)1) For prototyping, we actually modified our light map generatorFor prototyping, we actually modified our light map generator
to generate HDR maps and tried HDR skyboxes. They lookto generate HDR maps and tried HDR skyboxes. They look
great. However we didn’t include them in the patch because…great. However we didn’t include them in the patch because…
– Compressing HDR light map textures is challengingCompressing HDR light map textures is challenging
– Bandwidth requirements would have been even biggerBandwidth requirements would have been even bigger
– Far Cry patch size would have been hugeFar Cry patch size would have been huge
– No time to adjust and test all levelsNo time to adjust and test all levels
26. ConclusionConclusion
• Dynamic flow control in ps_3_0Dynamic flow control in ps_3_0
• Geometry InstancingGeometry Instancing
• High Dynamic Range RenderingHigh Dynamic Range Rendering
27. ReferencesReferences
• [Kawase03][Kawase03] Masaki Kawase, “FrameMasaki Kawase, “Frame
Buffer Postprocessing Effects inBuffer Postprocessing Effects in
DOUBLE-S.T.E.A.L (Wreckless),” GameDOUBLE-S.T.E.A.L (Wreckless),” Game
Developer’s Conference 2003Developer’s Conference 2003
• [Reinhard02][Reinhard02] Erik Reinhard, MichaelErik Reinhard, Michael
Stark, Peter Shirley and JamesStark, Peter Shirley and James
Ferwerda, “Photographic ToneFerwerda, “Photographic Tone
Reproduction for Digital Images,”Reproduction for Digital Images,”
SIGGRAPH 2002.SIGGRAPH 2002.