Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
53bb3827
Commit
53bb3827
authored
Sep 08, 2011
by
Matteo Bruni
Committed by
Alexandre Julliard
Sep 09, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Report more vertex texture formats.
parent
5385e1b3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
11 deletions
+44
-11
directx.c
dlls/wined3d/directx.c
+33
-1
utils.c
dlls/wined3d/utils.c
+10
-10
wined3d_private.h
dlls/wined3d/wined3d_private.h
+1
-0
No files found.
dlls/wined3d/directx.c
View file @
53bb3827
...
...
@@ -780,6 +780,16 @@ static BOOL match_fglrx(const struct wined3d_gl_info *gl_info, const char *gl_re
return
gl_vendor
==
GL_VENDOR_FGLRX
;
}
static
BOOL
match_limited_vtf
(
const
struct
wined3d_gl_info
*
gl_info
,
const
char
*
gl_renderer
,
enum
wined3d_gl_vendor
gl_vendor
,
enum
wined3d_pci_vendor
card_vendor
,
enum
wined3d_pci_device
device
)
{
/* Nvidia GeForce 6xxx and 7xxx support accelerated VTF only on a few
selected texture formats. As they are apparently the only DX9 class GPUs
supporting VTF, the check can be very simple. */
return
gl_info
->
limits
.
vertex_samplers
&&
!
match_dx10_capable
(
gl_info
,
gl_renderer
,
gl_vendor
,
card_vendor
,
device
);
}
static
void
quirk_arb_constants
(
struct
wined3d_gl_info
*
gl_info
)
{
TRACE_
(
d3d_caps
)(
"Using ARB vs constant limit(=%u) for GLSL.
\n
"
,
gl_info
->
limits
.
arb_vs_native_constants
);
...
...
@@ -902,6 +912,11 @@ static void quirk_infolog_spam(struct wined3d_gl_info *gl_info)
gl_info
->
quirks
|=
WINED3D_QUIRK_INFO_LOG_SPAM
;
}
static
void
quirk_limited_vtf
(
struct
wined3d_gl_info
*
gl_info
)
{
gl_info
->
quirks
|=
WINED3D_QUIRK_LIMITED_VTF
;
}
struct
driver_quirk
{
BOOL
(
*
match
)(
const
struct
wined3d_gl_info
*
gl_info
,
const
char
*
gl_renderer
,
...
...
@@ -991,6 +1006,11 @@ static const struct driver_quirk quirk_table[] =
quirk_infolog_spam
,
"Not printing GLSL infolog"
},
{
match_limited_vtf
,
quirk_limited_vtf
,
"Vertex textures support is limited"
},
};
/* Certain applications (Steam) complain if we report an outdated driver version. In general,
...
...
@@ -3673,7 +3693,19 @@ static BOOL CheckSurfaceCapability(const struct wined3d_adapter *adapter,
static
BOOL
CheckVertexTextureCapability
(
const
struct
wined3d_adapter
*
adapter
,
const
struct
wined3d_format
*
format
)
{
return
adapter
->
gl_info
.
limits
.
vertex_samplers
&&
(
format
->
flags
&
WINED3DFMT_FLAG_VTF
);
const
struct
wined3d_gl_info
*
gl_info
=
&
adapter
->
gl_info
;
if
(
!
gl_info
->
limits
.
vertex_samplers
||
!
(
format
->
flags
&
WINED3DFMT_FLAG_VTF
))
return
FALSE
;
switch
(
format
->
id
)
{
case
WINED3DFMT_R32G32B32A32_FLOAT
:
case
WINED3DFMT_R32_FLOAT
:
return
TRUE
;
default:
return
!
(
gl_info
->
quirks
&
WINED3D_QUIRK_LIMITED_VTF
);
}
}
HRESULT
CDECL
wined3d_check_device_format
(
const
struct
wined3d
*
wined3d
,
UINT
adapter_idx
,
...
...
dlls/wined3d/utils.c
View file @
53bb3827
...
...
@@ -615,19 +615,19 @@ static const struct wined3d_format_texture_info format_texture_info[] =
/* IEEE formats */
{
WINED3DFMT_R32_FLOAT
,
GL_RGB32F_ARB
,
GL_RGB32F_ARB
,
0
,
GL_RED
,
GL_FLOAT
,
0
,
WINED3DFMT_FLAG_RENDERTARGET
,
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_VTF
,
ARB_TEXTURE_FLOAT
,
NULL
},
{
WINED3DFMT_R32_FLOAT
,
GL_R32F
,
GL_R32F
,
0
,
GL_RED
,
GL_FLOAT
,
0
,
WINED3DFMT_FLAG_RENDERTARGET
,
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_VTF
,
ARB_TEXTURE_RG
,
NULL
},
{
WINED3DFMT_R32G32_FLOAT
,
GL_RGB32F_ARB
,
GL_RGB32F_ARB
,
0
,
GL_RGB
,
GL_FLOAT
,
12
,
WINED3DFMT_FLAG_RENDERTARGET
,
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_VTF
,
ARB_TEXTURE_FLOAT
,
convert_r32g32_float
},
{
WINED3DFMT_R32G32_FLOAT
,
GL_RG32F
,
GL_RG32F
,
0
,
GL_RG
,
GL_FLOAT
,
0
,
WINED3DFMT_FLAG_RENDERTARGET
,
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_VTF
,
ARB_TEXTURE_RG
,
NULL
},
{
WINED3DFMT_R32G32B32A32_FLOAT
,
GL_RGBA32F_ARB
,
GL_RGBA32F_ARB
,
0
,
GL_RGBA
,
GL_FLOAT
,
0
,
...
...
@@ -636,23 +636,23 @@ static const struct wined3d_format_texture_info format_texture_info[] =
/* Float */
{
WINED3DFMT_R16_FLOAT
,
GL_RGB16F_ARB
,
GL_RGB16F_ARB
,
0
,
GL_RED
,
GL_HALF_FLOAT_ARB
,
0
,
WINED3DFMT_FLAG_RENDERTARGET
,
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_VTF
,
ARB_TEXTURE_FLOAT
,
NULL
},
{
WINED3DFMT_R16_FLOAT
,
GL_R16F
,
GL_R16F
,
0
,
GL_RED
,
GL_HALF_FLOAT_ARB
,
0
,
WINED3DFMT_FLAG_RENDERTARGET
,
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_VTF
,
ARB_TEXTURE_RG
,
NULL
},
{
WINED3DFMT_R16G16_FLOAT
,
GL_RGB16F_ARB
,
GL_RGB16F_ARB
,
0
,
GL_RGB
,
GL_HALF_FLOAT_ARB
,
6
,
WINED3DFMT_FLAG_RENDERTARGET
,
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_VTF
,
ARB_TEXTURE_FLOAT
,
convert_r16g16
},
{
WINED3DFMT_R16G16_FLOAT
,
GL_RG16F
,
GL_RG16F
,
0
,
GL_RG
,
GL_HALF_FLOAT_ARB
,
0
,
WINED3DFMT_FLAG_RENDERTARGET
,
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_VTF
,
ARB_TEXTURE_RG
,
NULL
},
{
WINED3DFMT_R16G16B16A16_FLOAT
,
GL_RGBA16F_ARB
,
GL_RGBA16F_ARB
,
0
,
GL_RGBA
,
GL_HALF_FLOAT_ARB
,
0
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_RENDERTARGET
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_VTF
,
ARB_TEXTURE_FLOAT
,
NULL
},
/* Palettized formats */
{
WINED3DFMT_P8_UINT
,
GL_RGBA
,
GL_RGBA
,
0
,
...
...
@@ -671,7 +671,7 @@ static const struct wined3d_format_texture_info format_texture_info[] =
{
WINED3DFMT_B8G8R8A8_UNORM
,
GL_RGBA8
,
GL_SRGB8_ALPHA8_EXT
,
0
,
GL_BGRA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
0
,
WINED3DFMT_FLAG_POSTPIXELSHADER_BLENDING
|
WINED3DFMT_FLAG_FILTERING
|
WINED3DFMT_FLAG_RENDERTARGET
|
WINED3DFMT_FLAG_SRGB_READ
|
WINED3DFMT_FLAG_SRGB_WRITE
,
|
WINED3DFMT_FLAG_SRGB_READ
|
WINED3DFMT_FLAG_SRGB_WRITE
|
WINED3DFMT_FLAG_VTF
,
WINED3D_GL_EXT_NONE
,
NULL
},
{
WINED3DFMT_B8G8R8X8_UNORM
,
GL_RGB8
,
GL_SRGB8_EXT
,
0
,
GL_BGRA
,
GL_UNSIGNED_INT_8_8_8_8_REV
,
0
,
...
...
dlls/wined3d/wined3d_private.h
View file @
53bb3827
...
...
@@ -53,6 +53,7 @@
#define WINED3D_QUIRK_FBO_TEX_UPDATE 0x00000020
#define WINED3D_QUIRK_BROKEN_RGBA16 0x00000040
#define WINED3D_QUIRK_INFO_LOG_SPAM 0x00000080
#define WINED3D_QUIRK_LIMITED_VTF 0x00000100
/* Texture format fixups */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment