Connect public, paid and private patent data with Google Patents Public Datasets

Shader interfaces

Info

Publication number
WO2009158679A3
WO2009158679A3 PCT/US2009/048960 US2009048960W WO2009158679A3 WO 2009158679 A3 WO2009158679 A3 WO 2009158679A3 US 2009048960 W US2009048960 W US 2009048960W WO 2009158679 A3 WO2009158679 A3 WO 2009158679A3
Authority
WO
Grant status
Application
Patent type
Prior art keywords
shader
registers
level
hlsl
complex
Prior art date
Application number
PCT/US2009/048960
Other languages
French (fr)
Other versions
WO2009158679A2 (en )
WO2009158679A8 (en )
Inventor
Michael V. Oneppo
Craig C. Peeper
Andrew L. Bliss
John L. Rapp
Mark M. Lacey
Original Assignee
Microsoft Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformations of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • G06F9/44Arrangements for executing specific programmes
    • G06F9/4421Execution paradigms
    • G06F9/4428Object-oriented
    • G06F9/443Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRICAL DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for programme control, e.g. control unit
    • G06F9/06Arrangements for programme control, e.g. control unit using stored programme, i.e. using internal store of processing equipment to receive and retain programme
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogramme communication ; Intertask communication
    • G06F9/541Interprogramme communication ; Intertask communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Abstract

Allocation of memory registers for shaders by a processor is described herein. For each shader, registers are allocated based on the shader's level of complexity. Simpler shader instances are restricted to a smaller number of memory registers. More complex shader instances are allotted more registers. To do so, developers' high level shading level (HLSL) language includes template classes of shaders that can later be replaced by complex or simple versions of the shader. The HLSL is converted to bytecode that can be used to rasterize pixels on a computing device.
PCT/US2009/048960 2008-06-27 2009-06-26 Shader interfaces WO2009158679A8 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/163,734 2008-06-27
US12163734 US8581912B2 (en) 2008-06-27 2008-06-27 Dynamic subroutine linkage optimizing shader performance

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN 200980124880 CN102077251B (en) 2008-06-27 2009-06-26 Shader interfaces
EP20090771210 EP2289050A4 (en) 2008-06-27 2009-06-26 Shader interfaces

Publications (3)

Publication Number Publication Date
WO2009158679A2 true WO2009158679A2 (en) 2009-12-30
WO2009158679A3 true true WO2009158679A3 (en) 2010-05-06
WO2009158679A8 true WO2009158679A8 (en) 2010-11-18

Family

ID=41445370

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/048960 WO2009158679A8 (en) 2008-06-27 2009-06-26 Shader interfaces

Country Status (4)

Country Link
US (3) US8581912B2 (en)
CN (1) CN102077251B (en)
EP (1) EP2289050A4 (en)
WO (1) WO2009158679A8 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8416238B2 (en) * 2009-02-18 2013-04-09 Autodesk, Inc. Modular shader architecture and method for computerized image rendering
US8379024B2 (en) * 2009-02-18 2013-02-19 Autodesk, Inc. Modular shader architecture and method for computerized image rendering
US8368694B2 (en) * 2009-06-04 2013-02-05 Autodesk, Inc Efficient rendering of multiple frame buffers with independent ray-tracing parameters
US8970588B1 (en) * 2009-07-31 2015-03-03 Pixar System and methods for implementing object oriented structures in a shading language
US9245371B2 (en) * 2009-09-11 2016-01-26 Nvidia Corporation Global stores and atomic operations
US8756590B2 (en) 2010-06-22 2014-06-17 Microsoft Corporation Binding data parallel device source code
US8677186B2 (en) 2010-12-15 2014-03-18 Microsoft Corporation Debugging in data parallel computations
US8997066B2 (en) 2010-12-27 2015-03-31 Microsoft Technology Licensing, Llc Emulating pointers
US8539458B2 (en) 2011-06-10 2013-09-17 Microsoft Corporation Transforming addressing alignment during code generation
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9495722B2 (en) * 2013-05-24 2016-11-15 Sony Interactive Entertainment Inc. Developer controlled layout
US9779535B2 (en) 2014-03-19 2017-10-03 Microsoft Technology Licensing, Llc Configuring resources used by a graphics processing unit
US9766954B2 (en) 2014-09-08 2017-09-19 Microsoft Technology Licensing, Llc Configuring resources used by a graphics processing unit
KR20160033479A (en) 2014-09-18 2016-03-28 삼성전자주식회사 Graphic processing unit and method of processing graphic data using the same
US9786026B2 (en) 2015-06-15 2017-10-10 Microsoft Technology Licensing, Llc Asynchronous translation of computer program resources in graphics processing unit emulation
CN105374070A (en) * 2015-12-11 2016-03-02 中国航空工业集团公司西安航空计算技术研究所 3D graphic processing algorithm modeling simulation method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040164987A1 (en) * 2003-02-24 2004-08-26 Microsoft Corporation Usage semantics
US20060055695A1 (en) * 2004-09-13 2006-03-16 Nvidia Corporation Increased scalability in the fragment shading pipeline
US20070091088A1 (en) * 2005-10-14 2007-04-26 Via Technologies, Inc. System and method for managing the computation of graphics shading operations
US20070153015A1 (en) * 2006-01-05 2007-07-05 Smedia Technology Corporation Graphics processing unit instruction sets using a reconfigurable cache

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838686A (en) * 1994-04-22 1998-11-17 Thomson Consumer Electronics, Inc. System for dynamically allocating a scarce resource
US6041179A (en) * 1996-10-03 2000-03-21 International Business Machines Corporation Object oriented dispatch optimization
US7548238B2 (en) * 1997-07-02 2009-06-16 Nvidia Corporation Computer graphics shader systems and methods
US6704927B1 (en) * 1998-03-24 2004-03-09 Sun Microsystems, Inc. Static binding of dynamically-dispatched calls in the presence of dynamic linking and loading
US6175956B1 (en) * 1998-07-15 2001-01-16 International Business Machines Corporation Method and computer program product for implementing method calls in a computer system
US6654951B1 (en) * 1998-12-14 2003-11-25 International Business Machines Corporation Removal of unreachable methods in object-oriented applications based on program interface analysis
US6507946B2 (en) * 1999-06-11 2003-01-14 International Business Machines Corporation Process and system for Java virtual method invocation
JP4118456B2 (en) * 1999-06-29 2008-07-16 株式会社東芝 Program language processing system, code optimization methods, and machine-readable storage medium
US6658657B1 (en) * 2000-03-31 2003-12-02 Intel Corporation Method and apparatus for reducing the overhead of virtual method invocations
US6704297B1 (en) 2000-08-23 2004-03-09 Northrop Grumman Corporation Downlink orderwire integrator and separator for use in a satellite based communications system
US6941550B1 (en) * 2001-07-09 2005-09-06 Microsoft Corporation Interface invoke mechanism
US7564460B2 (en) 2001-07-16 2009-07-21 Microsoft Corporation Systems and methods for providing intermediate targets in a graphics system
US7103878B2 (en) * 2001-12-13 2006-09-05 Hewlett-Packard Development Company, L.P. Method and system to instrument virtual function calls
US7159212B2 (en) 2002-03-08 2007-01-02 Electronic Arts Inc. Systems and methods for implementing shader-driven compilation of rendering assets
US7015909B1 (en) 2002-03-19 2006-03-21 Aechelon Technology, Inc. Efficient use of user-defined shaders to implement graphics operations
JP3956112B2 (en) * 2002-06-12 2007-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation Compiler, register allocation unit, a program, a recording medium, compiling, and register allocation method
US6809732B2 (en) 2002-07-18 2004-10-26 Nvidia Corporation Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions
US20040095348A1 (en) * 2002-11-19 2004-05-20 Bleiweiss Avi I. Shading language interface and method
US7530062B2 (en) * 2003-05-23 2009-05-05 Microsoft Corporation Optimizing compiler transforms for a high level shader language
US7523406B2 (en) * 2003-07-22 2009-04-21 Autodesk Inc. Dynamic parameter interface
US8274517B2 (en) 2003-11-14 2012-09-25 Microsoft Corporation Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques
US7463259B1 (en) * 2003-12-18 2008-12-09 Nvidia Corporation Subshader mechanism for programming language
US20060082577A1 (en) 2004-10-20 2006-04-20 Ugs Corp. System, method, and computer program product for dynamic shader generation
US7598953B2 (en) * 2004-11-05 2009-10-06 Microsoft Corporation Interpreter for simplified programming of graphics processor units in general purpose programming languages
US7548244B2 (en) * 2005-01-12 2009-06-16 Sony Computer Entertainment Inc. Interactive debugging and monitoring of shader programs executing on a graphics processor
US7394464B2 (en) 2005-01-28 2008-07-01 Microsoft Corporation Preshaders: optimization of GPU programs
US8144149B2 (en) * 2005-10-14 2012-03-27 Via Technologies, Inc. System and method for dynamically load balancing multiple shader stages in a shared pool of processing units
US20070229520A1 (en) * 2006-03-31 2007-10-04 Microsoft Corporation Buffered Paint Systems
US8766996B2 (en) * 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US8601456B2 (en) * 2006-08-04 2013-12-03 Microsoft Corporation Software transactional protection of managed pointers
US7750913B1 (en) * 2006-10-24 2010-07-06 Adobe Systems Incorporated System and method for implementing graphics processing unit shader programs using snippets
US8379032B2 (en) * 2007-09-28 2013-02-19 Qualcomm Incorporated System and method of mapping shader variables into physical registers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040164987A1 (en) * 2003-02-24 2004-08-26 Microsoft Corporation Usage semantics
US20060055695A1 (en) * 2004-09-13 2006-03-16 Nvidia Corporation Increased scalability in the fragment shading pipeline
US20070091088A1 (en) * 2005-10-14 2007-04-26 Via Technologies, Inc. System and method for managing the computation of graphics shading operations
US20070153015A1 (en) * 2006-01-05 2007-07-05 Smedia Technology Corporation Graphics processing unit instruction sets using a reconfigurable cache

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2289050A4 *

Also Published As

Publication number Publication date Type
US8581912B2 (en) 2013-11-12 grant
US20170039754A1 (en) 2017-02-09 application
US20140063029A1 (en) 2014-03-06 application
CN102077251A (en) 2011-05-25 application
WO2009158679A2 (en) 2009-12-30 application
EP2289050A4 (en) 2012-01-11 application
EP2289050A2 (en) 2011-03-02 application
US9824484B2 (en) 2017-11-21 grant
US9390542B2 (en) 2016-07-12 grant
CN102077251B (en) 2014-01-08 grant
US20090322751A1 (en) 2009-12-31 application
WO2009158679A8 (en) 2010-11-18 application

Similar Documents

Publication Publication Date Title
Kindratenko et al. GPU clusters for high-performance computing
US20120144376A1 (en) Embedded system development
US20120233592A1 (en) Meta Garbage Collection for Functional Code
Cramer et al. Openmp programming on intel r xeon phi tm coprocessors: An early performance comparison
US20130132933A1 (en) Automated compliance testing during application development
Cao et al. The yin and yang of power and performance for asymmetric hardware and managed software
US20130141443A1 (en) Software libraries for heterogeneous parallel processing platforms
US20130268257A1 (en) System and method for energy usage accounting in software applications
US20110167414A1 (en) System and method for obfuscation by common function and common function prototype
Harvey et al. Swan: A tool for porting CUDA programs to OpenCL
US20150143347A1 (en) Software development environment and method of compiling integrated source code
Schmidl et al. Assessing the performance of openmp programs on the intel xeon phi
Auerbach et al. A compiler and runtime for heterogeneous computing
Posadas et al. POSIX modeling in SystemC
Pandit et al. Fluidic kernels: Cooperative execution of opencl programs on multiple heterogeneous devices
Nugteren et al. Introducing'Bones': a parallelizing source-to-source compiler based on algorithmic skeletons
Bortolotti et al. Virtualsoc: A full-system simulation environment for massively parallel heterogeneous system-on-chip
Breitbart CuPP-A framework for easy CUDA integration
Herhut et al. River trail: a path to parallelism in JavaScript
Membarth et al. Code generation for embedded heterogeneous architectures on Android
Haupt et al. Micro-measurements for dynamic aspect-oriented systems
Bai et al. Heap data management for limited local memory (LLM) multi-core processors
Heinecke et al. Extending a highly parallel data mining algorithm to the intel® many integrated core architecture
US8578352B1 (en) Optimizing object oriented programs using limited customization
Boyer et al. Improving GPU performance prediction with data transfer modeling

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09771210

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE