Closed
Bug 578173
Opened 14 years ago
Closed 13 years ago
Reuse texture in ThebesLayerD3D9
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
WONTFIX
People
(Reporter: bas.schouten, Assigned: bas.schouten)
Details
Attachments
(1 file, 1 obsolete file)
6.84 KB,
patch
|
Details | Diff | Splinter Review |
We should not create a new texture for D3D9 layers if the bounds of the visible region do not change. In order to do this we need to have a scratch surface though where we can 'ping-pong' to since a self-copy operation is not supported.
Attachment #456933 -
Flags: review?(jmuizelaar)
Comment 1•14 years ago
|
||
Comment on attachment 456933 [details] [diff] [review]
Reuse ThebesLayerD3D9 hardware textures
>
> /*
> * This is the LayerManager used for Direct3D 9. For now this will render on
>@@ -112,16 +114,19 @@ public:
> virtual already_AddRefed<ColorLayer> CreateColorLayer();
>
> virtual already_AddRefed<CanvasLayer> CreateCanvasLayer();
>
> virtual already_AddRefed<ImageContainer> CreateImageContainer();
>
> virtual LayersBackend GetBackendType() { return LAYERS_D3D9; }
>
>+ virtual IDirect3DTexture9 *GetScratchTexture(D3DFORMAT aFormat,
>+ const gfxIntSize &aSize);
>+
I don't think this needs to be virtual.
> /*
> * Helper methods.
> */
> void SetClippingEnabled(PRBool aEnabled);
>
> IDirect3DDevice9 *device() const { return mDevice; }
>
> enum ShaderMode {
>@@ -160,16 +165,19 @@ private:
> nsRefPtr<IDirect3DPixelShader9> mSolidColorPS;
>
> /* Vertex buffer containing our basic vertex structure */
> nsRefPtr<IDirect3DVertexBuffer9> mVB;
>
> /* Our vertex declaration */
> nsRefPtr<IDirect3DVertexDeclaration9> mVD;
>
>+ /* Table of scratch surfaces */
>+ nsClassHashtable<nsUint32HashKey, IDirect3DTexture9> mScratchSurfaces;
>+
A hash table is probably overkill for this, but it's also probably not worth worrying about either.
Attachment #456933 -
Flags: review?(jmuizelaar) → review+
Assignee | ||
Comment 2•14 years ago
|
||
This patch is updated to the new structure. It also requests a surface two pixels bigger since otherwise NVidia cards seem to fail. This currently can have some minor sync issues with D2D interop, I've got a separate patch for this.
Attachment #456933 -
Attachment is obsolete: true
Updated•13 years ago
|
QA Contact: thebes → bas.schouten
Assignee | ||
Comment 3•13 years ago
|
||
We're currently not seeing serious performance issues here, let's ignore it until we do. D2D interop is gone now so that solves some problems.
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•