Closed
Bug 630628
Opened 14 years ago
Closed 14 years ago
Extract d3dx9_??.dll and d3dcompiler_??.dll from DirectX SDK at build time, and ship them with the build
Categories
(Core :: Graphics: CanvasWebGL, defect)
Tracking
()
RESOLVED
FIXED
mozilla2.0b12
Tracking | Status | |
---|---|---|
blocking2.0 | --- | final+ |
People
(Reporter: bjacob, Assigned: bjacob)
References
Details
Attachments
(3 files, 3 obsolete files)
6.31 KB,
patch
|
Details | Diff | Splinter Review | |
7.69 KB,
patch
|
vlad
:
review+
|
Details | Diff | Splinter Review |
8.54 KB,
patch
|
bjacob
:
review+
|
Details | Diff | Splinter Review |
WebGL on Windows relies on using ANGLE for rendering, which relies on a DLL, namely d3dx9_42.dll, to be present. It is part of the Microsoft DirectX SDK runtime, which we don't want to have to ask users to install by themselves. Therefore we want to ship this file with the build. This patch extracts it from the DirectX SDK at build time, and copies it into dist/bin.
The size of d3dx9_42.dll is 1.8 MiB. Is that OK?
Assignee | ||
Comment 1•14 years ago
|
||
Assignee | ||
Comment 2•14 years ago
|
||
Also, i fixed a message in configure.in about the DirectX SDK : "registry"
Assignee | ||
Comment 3•14 years ago
|
||
'export' is not needed for D3DX9_DLL, I am removing it.
Assignee | ||
Comment 4•14 years ago
|
||
Assignee | ||
Comment 5•14 years ago
|
||
****, turns out that we also need D3DCompiler_42.dll. Chrome does it too. That's another 2.46 MiB. Total 4.26 MiB.
Summary: Extract d3dx9_42.dll from DirectX SDK at build time, and ship it with the build → Extract d3dx9_42.dll and d3dcompiler_42.dll from DirectX SDK at build time, and ship them with the build
Assignee | ||
Comment 6•14 years ago
|
||
Here's the updated patch. Also logging devenv.exe output to investigate weird hangs.
Attachment #508842 -
Attachment is obsolete: true
Attachment #508892 -
Flags: review?(vladimir)
Attachment #508842 -
Flags: review?(vladimir)
Comment on attachment 508892 [details] [diff] [review]
extract and ship d3dx9_42.dll and d3dcompiler_42.dll
does //out actually put output there? If so, you could have it automatically cat'd after each build.. something like (devenv //out .. || (cat log.txt && exit 1))
additional patch for about:license
Attachment #509196 -
Flags: review?
Attachment #509196 -
Flags: review? → review?(handerson)
Assignee | ||
Updated•14 years ago
|
Summary: Extract d3dx9_42.dll and d3dcompiler_42.dll from DirectX SDK at build time, and ship them with the build → Extract d3dx9_??.dll and d3dcompiler_??.dll from DirectX SDK at build time, and ship them with the build
Assignee | ||
Comment 9•14 years ago
|
||
This time it's ready!
It auto-detects the numeric version (e.g. 42) so should work with any SDK version. Contrary to previous patch which turned out to only work with February 2010.
Attachment #508892 -
Attachment is obsolete: true
Attachment #509299 -
Flags: review?(vladimir)
Attachment #508892 -
Flags: review?(vladimir)
Assignee | ||
Comment 10•14 years ago
|
||
removed extra ;
Attachment #509299 -
Attachment is obsolete: true
Attachment #509301 -
Flags: review?(vladimir)
Attachment #509299 -
Flags: review?(vladimir)
Comment on attachment 509301 [details] [diff] [review]
extract and ship dlls from DirectX runtime
Looks good to me, but please change
MOZ_DIRECTX_SDK_NUMERIC_VERSION
to something like MOZ_D3DX9_VERSION -- the 42/43 are just revs, and aren't tied to the SDK version.
Also, need harvey to r+ the license file change, and then can you commit both together?
Attachment #509301 -
Flags: review?(vladimir) → review+
Assignee | ||
Comment 12•14 years ago
|
||
(In reply to comment #11)
> Comment on attachment 509301 [details] [diff] [review]
> extract and ship dlls from DirectX runtime
>
> Looks good to me, but please change
> MOZ_DIRECTX_SDK_NUMERIC_VERSION
> to something like MOZ_D3DX9_VERSION -- the 42/43 are just revs, and aren't tied
> to the SDK version.
Ah OK.
>
> Also, need harvey to r+ the license file change, and then can you commit both
> together?
Will do. This is currently on tryserver, I'll check that the builds work.
I'll also check the resulting .exe installer size and write to dev-platfom.
Assignee | ||
Comment 13•14 years ago
|
||
The previous version failed in 'make installer' on tryserver because I had to add DEFINES += ... lines in the Makefile.in to make those variables available in the package-manifest.in.
Carrying forward r+.
Attachment #509340 -
Flags: review+
Assignee | ||
Comment 14•14 years ago
|
||
Ah and also the manifest was always listing the files on Win32, regardless of MOZ_ANGLE, making --disable-angle probably fail? (didn't try). Anyway, replaced this by MOZ_ANGLE.
Comment 15•14 years ago
|
||
iirc we only warn about files that are missing in the package manifest.
Comment 16•14 years ago
|
||
Comment on attachment 509196 [details] [diff] [review]
patch for about:license
Let's use the following language instead of the text in the patch above:
=============================================================================
This license applies to the following files; they are referred to below as
“Distributable Code”:
• d3dx9_*.dll
• DbgHelp.dll
• mozcrt19.dll
• mozcpp19.dll
Copyright (c) Microsoft Corporation.
The Distributable Code may be used and distributed only if you comply with the
following terms: (i)You may use, copy, and distribute the Distributable Code only as part of this product;(ii)You may not use the Distributable Code on a platform other than Windows; (iii) You may not alter any copyright, trademark or patent notice in the Distributable Code; (iv) You may not modify or distribute the source code of any Distributable Code so that any part of the source code becomes subject to the MPL or any other copyleft license; (v) You must comply with any technical limitations in the Distributable Code that only allow you to use it in certain ways; and (vi)You must comply with all domestic and international export laws and regulations that apply to the Distributable Code.
Assignee | ||
Updated•14 years ago
|
blocking2.0: --- → ?
blocking2.0: ? → final+
Assignee | ||
Comment 17•14 years ago
|
||
http://hg.mozilla.org/mozilla-central/rev/8c58b6b17f7e
http://hg.mozilla.org/mozilla-central/rev/858e2e5520c7
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 18•14 years ago
|
||
Fix builds on comm-central build slaves which don't have the DirectX SDK:
http://hg.mozilla.org/mozilla-central/rev/136bf950ef27
Updated•14 years ago
|
Target Milestone: --- → mozilla2.0b12
Version: unspecified → Trunk
Comment 19•14 years ago
|
||
> http://hg.mozilla.org/mozilla-central/rev/858e2e5520c7
This doesn't mention mozcrt19.dll and mozcpp19.dll, as Harvey suggested in comment 16 !?
Indeed, it looks like the old patch to about:license was checked in?
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Assignee | ||
Comment 21•14 years ago
|
||
I assumed that mozcrt19.dll and mozcpp19.dll were a typo, since I don't see why these should be covered by the Microsoft Direct X license, and they are not affected in any way by this change? The present bug only adds two new DLLs, d3dx9_??.dll and D3DCompiler_??.dll.
Assignee | ||
Comment 22•14 years ago
|
||
(In reply to comment #20)
> Indeed, it looks like the old patch to about:license was checked in?
No! Look, I copied and pasted Harvey's paragraph.
(In reply to comment #22)
> (In reply to comment #20)
> > Indeed, it looks like the old patch to about:license was checked in?
>
> No! Look, I copied and pasted Harvey's paragraph.
Ah. I just looked at the "DirectX License" bit.
Comment 24•14 years ago
|
||
So can this be re-resolved as fixed or is there some work left to do here?
Assignee | ||
Comment 25•14 years ago
|
||
I believe that this is solved UNLESS you think that the DirectX license bit should also apply to mozcrt19.dll and mozcpp19.dll.
^ this is a question to Steffen Wilberg comment 19.
Lets cover that in a follow up if necessary.
Status: REOPENED → RESOLVED
Closed: 14 years ago → 14 years ago
Resolution: --- → FIXED
Comment 27•14 years ago
|
||
mozcrt19.dll and mozcpp19.dll are custom-built versions, including jemalloc, of the Microsoft standard C runtime (CRT). They're unrelated to DirectX. I would be surprised if we need to display their license.
But Harvey should answer that question, as he mentioned them in comment 16.
"Only some Visual C++ files can be redistributed with your application. See the Microsoft Software License Terms for Visual Studio 2005 and the Redist.txt file to see which files can be redistributed with your application. EULA.txt is in the \Setup directory on the first Visual C++ 2008 product CD or on the DVD, and Redist.txt is located in the Program Files\Microsoft Visual Studio 2005 directory on the second CD or on the DVD."
http://msdn.microsoft.com/en-us/library/ms235299%28v=VS.90%29.aspx
I don't have Visual C++.
Comment 28•14 years ago
|
||
Did Microsoft change DirectX SDK eula? Because if not, it's not allowed to distribute separate parts of the runtime and install them with a custom installer. At minimum, you are required to ship dxsetup.exe, dsetup32.dll, dsetup.dll, dxupdate.cab (the rest is optional) and install the runtime files by running dxsetup.exe.
That's up to our legal folks to determine; contact handerson at mozilla.com if you have questions there...
Comment 30•14 years ago
|
||
Just checked the newest DX SDK license and what I mentioned above (minus the required install through runtime installer, but why distribute the installer and then not use it) still applies.
Comment 31•14 years ago
|
||
I don't see any reference to DX SDK in the about:credits page of Google Chrome.
I though it was using it for the WebGL rendering.
Assignee | ||
Comment 32•14 years ago
|
||
It is. Also, although i've not been able to check it myself, several people have reported that it ships the exact same two files as we do, and no other files from the DX SDK.
Attachment #509196 -
Flags: review?(handerson)
You need to log in
before you can comment on or make changes to this bug.
Description
•