WO2009158679A8 - Shader interfaces - Google Patents

Shader interfaces Download PDF

Info

Publication number
WO2009158679A8
WO2009158679A8 PCT/US2009/048960 US2009048960W WO2009158679A8 WO 2009158679 A8 WO2009158679 A8 WO 2009158679A8 US 2009048960 W US2009048960 W US 2009048960W WO 2009158679 A8 WO2009158679 A8 WO 2009158679A8
Authority
WO
WIPO (PCT)
Prior art keywords
shader
registers
hlsl
shaders
complex
Prior art date
Application number
PCT/US2009/048960
Other languages
French (fr)
Other versions
WO2009158679A2 (en
WO2009158679A3 (en
Inventor
Michael V. Oneppo
Craig 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
Application filed by Microsoft Corporation filed Critical Microsoft Corporation
Priority to EP09771210.3A priority Critical patent/EP2289050B1/en
Priority to CN200980124880.0A priority patent/CN102077251B/en
Publication of WO2009158679A2 publication Critical patent/WO2009158679A2/en
Publication of WO2009158679A3 publication Critical patent/WO2009158679A3/en
Publication of WO2009158679A8 publication Critical patent/WO2009158679A8/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 WO2009158679A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP09771210.3A EP2289050B1 (en) 2008-06-27 2009-06-26 Shader interfaces
CN200980124880.0A CN102077251B (en) 2008-06-27 2009-06-26 Shader interfaces

Applications Claiming Priority (2)

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

Publications (3)

Publication Number Publication Date
WO2009158679A2 WO2009158679A2 (en) 2009-12-30
WO2009158679A3 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 WO2009158679A2 (en) 2008-06-27 2009-06-26 Shader interfaces

Country Status (4)

Country Link
US (3) US8581912B2 (en)
EP (1) EP2289050B1 (en)
CN (1) CN102077251B (en)
WO (1) WO2009158679A2 (en)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9849372B2 (en) * 2012-09-28 2017-12-26 Sony Interactive Entertainment Inc. Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title
US8379024B2 (en) * 2009-02-18 2013-02-19 Autodesk, Inc. Modular shader architecture and method for computerized image rendering
US8416238B2 (en) * 2009-02-18 2013-04-09 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
US9324175B2 (en) * 2009-09-11 2016-04-26 Nvidia Corporation Memory coherency in graphics command streams and shaders
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
US10255650B2 (en) 2013-05-24 2019-04-09 Sony Interactive Entertainment Inc. Graphics processing using dynamic resources
US9766954B2 (en) 2014-09-08 2017-09-19 Microsoft Technology Licensing, Llc Configuring resources used by a graphics processing unit
US9779535B2 (en) 2014-03-19 2017-10-03 Microsoft Technology Licensing, Llc Configuring resources used by a graphics processing unit
KR102263326B1 (en) 2014-09-18 2021-06-09 삼성전자주식회사 Graphic processing unit and method of processing graphic data using the same
US10210591B2 (en) * 2015-02-02 2019-02-19 Microsoft Technology Licensing, Llc Optimizing compilation of shaders
US9786026B2 (en) 2015-06-15 2017-10-10 Microsoft Technology Licensing, Llc Asynchronous translation of computer program resources in graphics processing unit emulation
US9881351B2 (en) 2015-06-15 2018-01-30 Microsoft Technology Licensing, Llc Remote translation, aggregation and distribution of computer program resources in graphics processing unit emulation
CN105374070B (en) * 2015-12-11 2018-07-06 中国航空工业集团公司西安航空计算技术研究所 A kind of 3D image processing algorithms modeling and simulating method
US10152819B2 (en) 2016-08-15 2018-12-11 Microsoft Technology Licensing, Llc Variable rate shading
KR102644276B1 (en) * 2016-10-10 2024-03-06 삼성전자주식회사 Apparatus and method for processing graphic
US10147227B2 (en) 2017-02-17 2018-12-04 Microsoft Technology Licensing, Llc Variable rate shading
US20180275957A1 (en) * 2017-03-27 2018-09-27 Ca, Inc. Assistive technology for code generation using voice and virtual reality
GB2570304B (en) * 2018-01-18 2022-06-01 Imagination Tech Ltd Topology preservation in a graphics pipeline
CN108874396A (en) * 2018-05-31 2018-11-23 苏州蜗牛数字科技股份有限公司 The cross-compiler and Compilation Method of multi-platform multiple target language based on HLSL
CN108830920B (en) * 2018-06-28 2022-06-21 武汉斗鱼网络科技有限公司 Method and device for creating constant buffer area and readable storage medium
US11107263B2 (en) * 2018-11-13 2021-08-31 Intel Corporation Techniques to manage execution of divergent shaders
CN109710264B (en) * 2018-12-19 2022-06-14 森大(深圳)技术有限公司 Gerber file conversion method, system, device and storage medium
US11295507B2 (en) * 2020-02-04 2022-04-05 Advanced Micro Devices, Inc. Spatial partitioning in a multi-tenancy graphics processing unit
US11069119B1 (en) * 2020-02-28 2021-07-20 Verizon Patent And Licensing Inc. Methods and systems for constructing a shader
US11475533B2 (en) * 2020-05-18 2022-10-18 Qualcomm Incorporated GPR optimization in a GPU based on a GPR release mechanism
US11550554B2 (en) * 2021-01-07 2023-01-10 Microsoft Technology Licensing, Llc Merged machine-level intermediate representation optimizations

Family Cites Families (36)

* 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 method, 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 インターナショナル・ビジネス・マシーンズ・コーポレーション Compiler, register allocation device, program, recording medium, compilation method, 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
US6839062B2 (en) 2003-02-24 2005-01-04 Microsoft Corporation Usage semantics
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
US8035646B2 (en) 2003-11-14 2011-10-11 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
US7218291B2 (en) 2004-09-13 2007-05-15 Nvidia Corporation Increased scalability in the fragment shading pipeline
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
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
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

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2009158679A8 (en) Shader interfaces
US20150355996A1 (en) System, method, and computer program product for collecting execution statistics for graphics processing unit workloads
Keryell et al. Khronos SYCL for OpenCL: a tutorial
TWI502510B (en) A system, method, and computer program product for optimizing the management of thread stack memory
US20150199787A1 (en) Distribute workload of an application to a graphics processing unit
Haidl et al. PACXX: Towards a unified programming model for programming accelerators using C++ 14
WO2010088139A3 (en) Compact abbe's kernel generation using principal component analysis
MX2021014457A (en) Multiprocessor utility meter featuring a metrology processor coupled to an application processor.
CN106557351A (en) The data processing method and device of built-in application program
CN109460237A (en) The Compilation Method and device of code
CN105183562A (en) Method for conducting degree drawing on grid data on basis of CUDA technology
Hong et al. Design of OpenCL framework for embedded multi-core processors
Haupt et al. Micro-measurements for dynamic aspect-oriented systems
Mohr et al. Cutting out the middleman: OS-level support for X10 activities
US20220100512A1 (en) Deterministic replay of a multi-threaded trace on a multi-threaded processor
Acosta et al. Performance analysis of paralldroid generated programs
Fang et al. ELMO: A User-Friendly API to enable local memory in OpenCL kernels
Ardila et al. Support tools for porting legacy applications to multicore
Fang et al. Implementing and evaluating OpenCL on an ARMv8 multi-core CPU
Ono et al. A gpu-supported high-level programming language for image processing
Jiang et al. OpenMP-style parallelism in data-centered multicore computing with R
Zhang et al. Binary translation to improve energy efficiency through post-pass register re-allocation
Crisci et al. SYCL-Bench 2020: Benchmarking SYCL 2020 on AMD, Intel, and NVIDIA GPUs
Bonetta 4.6 parallel javascript in truffle
Lavrijsen Optimizing python-based ROOT I/O with PyPy's tracing just-in-time compiler

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980124880.0

Country of ref document: CN

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

WWE Wipo information: entry into national phase

Ref document number: 2009771210

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 8314/CHENP/2010

Country of ref document: IN

NENP Non-entry into the national phase

Ref country code: DE