WO2009158679A8 - Shader interfaces - Google Patents
Shader interfaces Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing 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.
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)
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)
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 |
-
2008
- 2008-06-27 US US12/163,734 patent/US8581912B2/en active Active
-
2009
- 2009-06-26 CN CN200980124880.0A patent/CN102077251B/en active Active
- 2009-06-26 WO PCT/US2009/048960 patent/WO2009158679A2/en active Application Filing
- 2009-06-26 EP EP09771210.3A patent/EP2289050B1/en active Active
-
2013
- 2013-11-11 US US14/076,886 patent/US9390542B2/en active Active
-
2016
- 2016-07-12 US US15/208,328 patent/US9824484B2/en active Active
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 |