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
26d17fe0
Commit
26d17fe0
authored
15 years ago
by
Stefan Dösinger
Committed by
Alexandre Julliard
15 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wined3d: Implement MRTs in ARB.
parent
bb8bcf58
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
9 deletions
+18
-9
arb_program_shader.c
dlls/wined3d/arb_program_shader.c
+13
-9
baseshader.c
dlls/wined3d/baseshader.c
+4
-0
wined3d_private.h
dlls/wined3d/wined3d_private.h
+1
-0
No files found.
dlls/wined3d/arb_program_shader.c
View file @
26d17fe0
...
...
@@ -880,23 +880,22 @@ static void shader_arb_get_register_name(const struct wined3d_shader_instruction
break
;
case
WINED3DSPR_COLOROUT
:
if
(
reg
->
idx
==
0
)
if
(
ctx
->
cur_ps_args
->
super
.
srgb_correction
&&
reg
->
idx
==
0
)
{
if
(
ctx
->
cur_ps_args
->
super
.
srgb_correction
)
strcpy
(
register_name
,
"TMP_COLOR"
);
}
else
{
if
(
ctx
->
cur_ps_args
->
super
.
srgb_correction
)
FIXME
(
"sRGB correction on higher render targets
\n
"
);
if
(
This
->
baseShader
.
reg_maps
.
highest_render_target
>
0
)
{
s
trcpy
(
register_name
,
"TMP_COLOR"
);
s
printf
(
register_name
,
"result.color[%u]"
,
reg
->
idx
);
}
else
{
strcpy
(
register_name
,
"result.color"
);
}
}
else
{
/* TODO: See GL_ARB_draw_buffers */
FIXME
(
"Unsupported write to render target %u
\n
"
,
reg
->
idx
);
sprintf
(
register_name
,
"unsupported_register"
);
}
break
;
case
WINED3DSPR_RASTOUT
:
...
...
@@ -2957,6 +2956,11 @@ static GLuint shader_arb_generate_pshader(IWineD3DPixelShaderImpl *This,
priv_ctx
.
target_version
=
ARB
;
}
if
(
This
->
baseShader
.
reg_maps
.
highest_render_target
>
0
)
{
shader_addline
(
buffer
,
"OPTION ARB_draw_buffers;
\n
"
);
}
if
(
reg_maps
->
shader_version
.
major
<
3
)
{
switch
(
args
->
super
.
fog
)
{
...
...
This diff is collapsed.
Click to expand it.
dlls/wined3d/baseshader.c
View file @
26d17fe0
...
...
@@ -316,6 +316,10 @@ static void shader_record_register_usage(IWineD3DBaseShaderImpl *This, struct sh
reg_maps
->
boolean_constants
|=
(
1
<<
reg
->
idx
);
break
;
case
WINED3DSPR_COLOROUT
:
reg_maps
->
highest_render_target
=
max
(
reg_maps
->
highest_render_target
,
reg
->
idx
);
break
;
default:
TRACE
(
"Not recording register of type %#x and idx %u
\n
"
,
reg
->
type
,
reg
->
idx
);
break
;
...
...
This diff is collapsed.
Click to expand it.
dlls/wined3d/wined3d_private.h
View file @
26d17fe0
...
...
@@ -644,6 +644,7 @@ typedef struct shader_reg_maps
/* Whether or not loops are used in this shader, and nesting depth */
unsigned
loop_depth
;
unsigned
highest_render_target
;
}
shader_reg_maps
;
...
...
This diff is collapsed.
Click to expand it.
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