i965: Update physical width/height munging for 2x IMS MSAA.
I can't find any documentation to explain what ought to be done here, so I simply guessed based on the pattern I observed in the 4x/8x cases. It appears to work, but it could be totally wrong. I was able to find the Sandybridge PRM quote from the comments in the latest documentation: Shared Functions > 3D Sampler > Multisampled Surface Behavior. However, it only mentions 4x MSAA - not even 8x. After a substantial amount more digging, I was able to find a second page (incorrectly tagged) which confirmed the formulas in our code for 8x MSAA. However, that page didn't mention 2x MSAA at all. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
@@ -313,6 +313,11 @@ intel_miptree_create_layout(struct brw_context *brw,
|
||||
* sample 3 is in that bottom right 2x2 block.
|
||||
*/
|
||||
switch (num_samples) {
|
||||
case 2:
|
||||
assert(brw->gen >= 8);
|
||||
width0 = ALIGN(width0, 2) * 2;
|
||||
height0 = ALIGN(height0, 2);
|
||||
break;
|
||||
case 4:
|
||||
width0 = ALIGN(width0, 2) * 2;
|
||||
height0 = ALIGN(height0, 2) * 2;
|
||||
@@ -322,7 +327,7 @@ intel_miptree_create_layout(struct brw_context *brw,
|
||||
height0 = ALIGN(height0, 2) * 2;
|
||||
break;
|
||||
default:
|
||||
/* num_samples should already have been quantized to 0, 1, 4, or
|
||||
/* num_samples should already have been quantized to 0, 1, 2, 4, or
|
||||
* 8.
|
||||
*/
|
||||
assert(false);
|
||||
|
||||
Reference in New Issue
Block a user