Emulation pipeline selection and emulation pipeline parameter prediction

    公开(公告)号:US11640689B1

    公开(公告)日:2023-05-02

    申请号:US17213714

    申请日:2021-03-26

    发明人: Evgeny Nikitenko

    IPC分类号: G06T15/00 G06F9/455

    摘要: Incompatible graphics frameworks present a barrier to emulating applications of one operating system (guest OS) upon a computer system employing a different operating system (host OS) such as occurs with virtual machines. Accordingly, in order to address limitations of emulating guest OS graphic pipelines upon the host OS the inventors have established methodologies for cross-platform graphics pipeline emulation, thus enabling efficient implementations of cross-platform virtualization solutions, through the establishment of emulation keys to support generic and specific graphics pipelines together with caching sets of graphical pipelines for subsequent retrieval and execution.

    Emulation pipeline selection and emulation pipleline parameter prediction

    公开(公告)号:US12106417B1

    公开(公告)日:2024-10-01

    申请号:US18187070

    申请日:2023-03-21

    发明人: Evgeny Nikitenko

    IPC分类号: G06T15/00 G06F9/455

    摘要: Incompatible graphics frameworks present a barrier to emulating applications of one operating system (guest OS) upon a computer system employing a different operating system (host OS) such as occurs with virtual machines. Accordingly, in order to address limitations of emulating guest OS graphic pipelines upon the host OS the inventors have established methodologies for cross-platform graphics pipeline emulation, thus enabling efficient implementations of cross-platform virtualization solutions, through the establishment of emulation keys to support generic and specific graphics pipelines together with caching sets of graphical pipelines for subsequent retrieval and execution.

    Hard ware-assisted emulation of graphics pipeline

    公开(公告)号:US11763514B1

    公开(公告)日:2023-09-19

    申请号:US17903543

    申请日:2022-09-06

    IPC分类号: G06T1/20 G06T15/00 G06T17/20

    CPC分类号: G06T15/005 G06T1/20 G06T17/20

    摘要: An example method of hardware-assisted graphics pipeline emulation comprises: computing, based on an input set of graphic primitives, a set of tessellation factors; computing, based on the input set of graphic primitives, a set of points specifying a plurality of patches; computing, based on the set of points, a tessellation count buffer; generating, based on the set of points and the tessellation count buffer, a tessellation offset buffer; performing, using the tessellation offset buffer, a tessellation setup stage; performing, by a graphics processing unit (GPU), a tessellation stage based on the set of tessellation factors, wherein the tessellation stage generates a plurality of output points corresponding to one or more patches of the plurality of patches; and computing, by a domain shader stage, a plurality of vertex positions defined by the plurality of output points.

    Hardware-assisted emulation of graphics pipeline

    公开(公告)号:US11450056B1

    公开(公告)日:2022-09-20

    申请号:US17322051

    申请日:2021-05-17

    IPC分类号: G06T1/20 G06T17/20 G06T15/00

    摘要: An example method of hardware-assisted graphics pipeline emulation comprises: computing, based on an input set graphic primitives, a set of tessellation factors; computing, based on the input set graphic primitives, a set of points specifying a plurality of patches; computing, based on the set of points, a tessellation count buffer; generating, based on the set of points and the tessellation count buffer, a tessellation offset buffer; performing, using the tessellation offset buffer, a tessellation setup stage; performing, by a graphics processing unit (GPU), a tessellation stage based on the set of tessellation factors, wherein the tessellation stage generates a plurality of output points corresponding to one or more patches of the plurality of patches; and computing, by a domain shader stage, a plurality of vertex positions defined by the plurality of output points.

    System and method for reading arrays of data by rebuilding an index buffer while preserving order

    公开(公告)号:US11417059B1

    公开(公告)日:2022-08-16

    申请号:US17149094

    申请日:2021-01-14

    摘要: Disclosed herein are systems and methods for reading input data into a geometry shader by rebuilding an index buffer. In one aspect, an exemplary method comprises constructing T-vectors for one-element ranges of the index buffer by defining each T-vector as a 4-component vector, calculating T-vectors for ranges [0; i] for all vertices of the index buffer by prefix scanning, for each vertex and for each primitive featuring the vertex, determining if the primitive is complete, and for each complete primitive, calculating an offset in an output index buffer using a component of the T-vector used to indicate, for the vertex, a number of complete primitives inside the range and a component that indicates a number of vertices since a last primitive restart, and writing an index value in an output index buffer, and reading input data into the geometry shader in accordance with the written index values.

    System and method for detecting when geometry shaders output a constant amount of data

    公开(公告)号:US11189002B1

    公开(公告)日:2021-11-30

    申请号:US16520600

    申请日:2019-07-24

    摘要: Disclosed herein are systems and methods for detecting when geometry shaders output a constant amount of data and writing the data into an output stream buffer. In one aspect, an exemplary method comprises gathering information about a number of block executions associated with the received data, analyzing the gathered information to determine whether constant or variable amount of data is generated for at least one of: a stream output or a rasterization, and when the constant amount of data is generated for the stream output, writing the generated data directly into a stream output buffer, and when the constant amount of data is generated for the rasterization, writing the generated data into a rasterization buffer either directly or through a use of an intermediate index buffer.

    Hardware-assisted emulation of graphics pipeline

    公开(公告)号:US11055896B1

    公开(公告)日:2021-07-06

    申请号:US16800656

    申请日:2020-02-25

    IPC分类号: G06T1/20 G06T17/20 G06T15/00

    摘要: An example method of hardware-assisted graphics pipeline emulation comprises: computing, based on an input set graphic primitives, a set of tessellation factors; computing, based on the input set graphic primitives, a set of points specifying a plurality of patches; computing, based on the set of points, a tessellation count buffer; generating, based on the set of points and the tessellation count buffer, a tessellation offset buffer; performing, using the tessellation offset buffer, a tessellation setup stage; performing, by a graphics processing unit (GPU), a tessellation stage based on the set of tessellation factors, wherein the tessellation stage generates a plurality of output points corresponding to one or more patches of the plurality of patches; and computing, by a domain shader stage, a plurality of vertex positions defined by the plurality of output points.

    System and method for reading arrays of data by rebuilding an index buffer while preserving order

    公开(公告)号:US11004263B1

    公开(公告)日:2021-05-11

    申请号:US16419113

    申请日:2019-05-22

    摘要: Disclosed herein are systems and methods for reading input data into a geometry shader by rebuilding an index buffer. In one aspect, an exemplary method comprises constructing T-vectors for one-element ranges of the index buffer by defining each T-vector as a 4-component vector, calculating T-vectors for ranges [0; i] for all vertices of the index buffer by prefix scanning, for each vertex and for each primitive featuring the vertex, determining if the primitive is complete, and for each complete primitive, calculating an offset in an output index buffer using a component of the T-vector used to indicate, for the vertex, a number of complete primitives inside the range and a component that indicates a number of vertices since a last primitive restart, and writing an index value in an output index buffer, and reading input data into the geometry shader in accordance with the written index values.